diff options
author | Mike Pall <mike> | 2015-02-18 16:00:15 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2015-02-18 16:00:15 +0100 |
commit | 704280fb80d5320b20f6cd20cfbf009a999164f0 (patch) | |
tree | 3c5ebcc776165112e4dd40d979ac3383a554e12b /src | |
parent | dfa173b92962350ac5f019dd4a340ad1c5c265c7 (diff) | |
download | luajit-704280fb80d5320b20f6cd20cfbf009a999164f0.tar.gz luajit-704280fb80d5320b20f6cd20cfbf009a999164f0.tar.bz2 luajit-704280fb80d5320b20f6cd20cfbf009a999164f0.zip |
FFI: Prevent DSE across ffi.string().
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_opt_mem.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c index f4e3cd3a..a4d96fc0 100644 --- a/src/lj_opt_mem.c +++ b/src/lj_opt_mem.c | |||
@@ -793,6 +793,7 @@ TRef LJ_FASTCALL lj_opt_dse_xstore(jit_State *J) | |||
793 | IRRef ref = *refp; | 793 | IRRef ref = *refp; |
794 | if (J->chain[IR_CALLXS] > lim) lim = J->chain[IR_CALLXS]; | 794 | if (J->chain[IR_CALLXS] > lim) lim = J->chain[IR_CALLXS]; |
795 | if (J->chain[IR_XBAR] > lim) lim = J->chain[IR_XBAR]; | 795 | if (J->chain[IR_XBAR] > lim) lim = J->chain[IR_XBAR]; |
796 | if (J->chain[IR_XSNEW] > lim) lim = J->chain[IR_XSNEW]; | ||
796 | while (ref > lim) { /* Search for redundant or conflicting stores. */ | 797 | while (ref > lim) { /* Search for redundant or conflicting stores. */ |
797 | IRIns *store = IR(ref); | 798 | IRIns *store = IR(ref); |
798 | switch (aa_xref(J, xr, fins, store)) { | 799 | switch (aa_xref(J, xr, fins, store)) { |