From c6130e68eb9a579d42db732d6ff1aa7bf02b8f65 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 15 Dec 2014 02:45:40 +0100 Subject: [PATCH] Avoid dependency on frame layout for LJ_POST_FIXCOMP. The auxiliary value in u32.lo wasn't used, anyway. --- src/lj_crecord.c | 3 +-- 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) !irt_isguard(J->guardemit)) { const BCIns *pc = frame_contpc(J->L->base-1) - 1; if (bc_op(*pc) <= BC_ISNEP) { - setframe_pc(&J2G(J)->tmptv, pc); - J2G(J)->tmptv.u32.lo = ((tref_istrue(tr) ^ bc_op(*pc)) & 1); + J2G(J)->tmptv.u64 = (uint64_t)(uintptr_t)pc; J->postproc = LJ_POST_FIXCOMP; } } 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) if (LJ_UNLIKELY(J->postproc != LJ_POST_NONE)) { switch (J->postproc) { case LJ_POST_FIXCOMP: /* Fixup comparison. */ - pc = frame_pc(&J2G(J)->tmptv); + pc = (const BCIns *)(uintptr_t)J2G(J)->tmptv.u64; rec_comp_fixup(J, pc, (!tvistruecond(&J2G(J)->tmptv2) ^ (bc_op(*pc)&1))); /* fallthrough */ case LJ_POST_FIXGUARD: /* Fixup and emit pending guard. */