diff options
author | Mike Pall <mike> | 2011-08-07 21:53:43 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-08-07 21:53:43 +0200 |
commit | d9b518874df3f202f762e82d1950d79caf55e4c0 (patch) | |
tree | d4532074d35d402187750d11b2e73486126e9b1c /src | |
parent | 4008b351f477d528ec950760689823f8ab785849 (diff) | |
download | luajit-d9b518874df3f202f762e82d1950d79caf55e4c0.tar.gz luajit-d9b518874df3f202f762e82d1950d79caf55e4c0.tar.bz2 luajit-d9b518874df3f202f762e82d1950d79caf55e4c0.zip |
FFI: Limit snapshot optimization for cdata comparisons.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_crecord.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 180f255c..8d2248a4 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -1003,7 +1003,8 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd) | |||
1003 | (tr = crec_arith_ptr(J, sp, s, (MMS)rd->data))) { | 1003 | (tr = crec_arith_ptr(J, sp, s, (MMS)rd->data))) { |
1004 | J->base[0] = tr; | 1004 | J->base[0] = tr; |
1005 | /* Fixup cdata comparisons, too. Avoids some cdata escapes. */ | 1005 | /* Fixup cdata comparisons, too. Avoids some cdata escapes. */ |
1006 | if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1)) { | 1006 | if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1) && |
1007 | !irt_isguard(J->guardemit)) { | ||
1007 | const BCIns *pc = frame_contpc(J->L->base-1) - 1; | 1008 | const BCIns *pc = frame_contpc(J->L->base-1) - 1; |
1008 | if (bc_op(*pc) <= BC_ISNEP) { | 1009 | if (bc_op(*pc) <= BC_ISNEP) { |
1009 | setframe_pc(&J2G(J)->tmptv, pc); | 1010 | setframe_pc(&J2G(J)->tmptv, pc); |