diff options
-rw-r--r-- | src/lj_crecord.c | 3 | ||||
-rw-r--r-- | src/lj_record.c | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index acd786f5..eb37597a 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -1484,8 +1484,7 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd) | |||
1484 | !irt_isguard(J->guardemit)) { | 1484 | !irt_isguard(J->guardemit)) { |
1485 | const BCIns *pc = frame_contpc(J->L->base-1) - 1; | 1485 | const BCIns *pc = frame_contpc(J->L->base-1) - 1; |
1486 | if (bc_op(*pc) <= BC_ISNEP) { | 1486 | if (bc_op(*pc) <= BC_ISNEP) { |
1487 | setframe_pc(&J2G(J)->tmptv, pc); | 1487 | J2G(J)->tmptv.u64 = (uint64_t)(uintptr_t)pc; |
1488 | J2G(J)->tmptv.u32.lo = ((tref_istrue(tr) ^ bc_op(*pc)) & 1); | ||
1489 | J->postproc = LJ_POST_FIXCOMP; | 1488 | J->postproc = LJ_POST_FIXCOMP; |
1490 | } | 1489 | } |
1491 | } | 1490 | } |
diff --git a/src/lj_record.c b/src/lj_record.c index 98296633..10d76468 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -1793,7 +1793,7 @@ void lj_record_ins(jit_State *J) | |||
1793 | if (LJ_UNLIKELY(J->postproc != LJ_POST_NONE)) { | 1793 | if (LJ_UNLIKELY(J->postproc != LJ_POST_NONE)) { |
1794 | switch (J->postproc) { | 1794 | switch (J->postproc) { |
1795 | case LJ_POST_FIXCOMP: /* Fixup comparison. */ | 1795 | case LJ_POST_FIXCOMP: /* Fixup comparison. */ |
1796 | pc = frame_pc(&J2G(J)->tmptv); | 1796 | pc = (const BCIns *)(uintptr_t)J2G(J)->tmptv.u64; |
1797 | rec_comp_fixup(J, pc, (!tvistruecond(&J2G(J)->tmptv2) ^ (bc_op(*pc)&1))); | 1797 | rec_comp_fixup(J, pc, (!tvistruecond(&J2G(J)->tmptv2) ^ (bc_op(*pc)&1))); |
1798 | /* fallthrough */ | 1798 | /* fallthrough */ |
1799 | case LJ_POST_FIXGUARD: /* Fixup and emit pending guard. */ | 1799 | case LJ_POST_FIXGUARD: /* Fixup and emit pending guard. */ |