aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-08-07 21:53:43 +0200
committerMike Pall <mike>2011-08-07 21:53:43 +0200
commitd9b518874df3f202f762e82d1950d79caf55e4c0 (patch)
treed4532074d35d402187750d11b2e73486126e9b1c /src
parent4008b351f477d528ec950760689823f8ab785849 (diff)
downloadluajit-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.c3
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);