summaryrefslogtreecommitdiff
path: root/src/lj_asm_arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_asm_arm.h')
-rw-r--r--src/lj_asm_arm.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h
index e865850d..f307d6b8 100644
--- a/src/lj_asm_arm.h
+++ b/src/lj_asm_arm.h
@@ -2102,9 +2102,12 @@ static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow)
2102 if (ra_hasspill(irp->s)) { 2102 if (ra_hasspill(irp->s)) {
2103 rset_clear(allow, ra_dest(as, ir, allow)); 2103 rset_clear(allow, ra_dest(as, ir, allow));
2104 } else { 2104 } else {
2105 lua_assert(ra_hasreg(irp->r)); 2105 Reg r = irp->r;
2106 rset_clear(allow, irp->r); 2106 lua_assert(ra_hasreg(r));
2107 ra_destreg(as, ir, irp->r); 2107 rset_clear(allow, r);
2108 if (r != ir->r && !rset_test(as->freeset, r))
2109 ra_restore(as, regcost_ref(as->cost[r]));
2110 ra_destreg(as, ir, r);
2108 } 2111 }
2109 return allow; 2112 return allow;
2110} 2113}