aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r--src/lj_asm_x86.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index bd97764f..c4c7300d 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -643,7 +643,7 @@ static void asm_retf(ASMState *as, IRIns *ir)
643{ 643{
644 Reg base = ra_alloc1(as, REF_BASE, RSET_GPR); 644 Reg base = ra_alloc1(as, REF_BASE, RSET_GPR);
645 void *pc = ir_kptr(IR(ir->op2)); 645 void *pc = ir_kptr(IR(ir->op2));
646 int32_t delta = 1+bc_a(*((const BCIns *)pc - 1)); 646 int32_t delta = 1+LJ_FR2+bc_a(*((const BCIns *)pc - 1));
647 as->topslot -= (BCReg)delta; 647 as->topslot -= (BCReg)delta;
648 if ((int32_t)as->topslot < 0) as->topslot = 0; 648 if ((int32_t)as->topslot < 0) as->topslot = 0;
649 irt_setmark(IR(REF_BASE)->t); /* Children must not coalesce with BASE reg. */ 649 irt_setmark(IR(REF_BASE)->t); /* Children must not coalesce with BASE reg. */