diff options
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r-- | src/lj_asm_x86.h | 2 |
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. */ |