diff options
Diffstat (limited to 'src/lj_asm.c')
-rw-r--r-- | src/lj_asm.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c index 1e934d7c..3813a5d7 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c | |||
@@ -2581,9 +2581,7 @@ static void asm_stack_restore(ASMState *as, SnapShot *snap) | |||
2581 | int32_t ofs = 8*((int32_t)s-1); | 2581 | int32_t ofs = 8*((int32_t)s-1); |
2582 | IRRef ref = snap_ref(sn); | 2582 | IRRef ref = snap_ref(sn); |
2583 | IRIns *ir = IR(ref); | 2583 | IRIns *ir = IR(ref); |
2584 | /* No need to restore readonly slots and unmodified non-parent slots. */ | 2584 | if ((sn & SNAP_NORESTORE)) |
2585 | if (ir->o == IR_SLOAD && ir->op1 == s && | ||
2586 | (ir->op2 & (IRSLOAD_READONLY|IRSLOAD_PARENT)) != IRSLOAD_PARENT) | ||
2587 | continue; | 2585 | continue; |
2588 | if (irt_isnum(ir->t)) { | 2586 | if (irt_isnum(ir->t)) { |
2589 | Reg src = ra_alloc1(as, ref, RSET_FPR); | 2587 | Reg src = ra_alloc1(as, ref, RSET_FPR); |