diff options
Diffstat (limited to 'src/lj_asm_mips.h')
-rw-r--r-- | src/lj_asm_mips.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lj_asm_mips.h b/src/lj_asm_mips.h index 22aa88bf..1fe934e1 100644 --- a/src/lj_asm_mips.h +++ b/src/lj_asm_mips.h | |||
@@ -2640,6 +2640,12 @@ static void asm_loop_fixup(ASMState *as) | |||
2640 | } | 2640 | } |
2641 | } | 2641 | } |
2642 | 2642 | ||
2643 | /* Fixup the tail of the loop. */ | ||
2644 | static void asm_loop_tail_fixup(ASMState *as) | ||
2645 | { | ||
2646 | if (as->loopinv) as->mctop--; | ||
2647 | } | ||
2648 | |||
2643 | /* -- Head of trace ------------------------------------------------------- */ | 2649 | /* -- Head of trace ------------------------------------------------------- */ |
2644 | 2650 | ||
2645 | /* Coalesce BASE register for a root trace. */ | 2651 | /* Coalesce BASE register for a root trace. */ |
@@ -2647,7 +2653,6 @@ static void asm_head_root_base(ASMState *as) | |||
2647 | { | 2653 | { |
2648 | IRIns *ir = IR(REF_BASE); | 2654 | IRIns *ir = IR(REF_BASE); |
2649 | Reg r = ir->r; | 2655 | Reg r = ir->r; |
2650 | if (as->loopinv) as->mctop--; | ||
2651 | if (ra_hasreg(r)) { | 2656 | if (ra_hasreg(r)) { |
2652 | ra_free(as, r); | 2657 | ra_free(as, r); |
2653 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) | 2658 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) |
@@ -2662,7 +2667,6 @@ static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow) | |||
2662 | { | 2667 | { |
2663 | IRIns *ir = IR(REF_BASE); | 2668 | IRIns *ir = IR(REF_BASE); |
2664 | Reg r = ir->r; | 2669 | Reg r = ir->r; |
2665 | if (as->loopinv) as->mctop--; | ||
2666 | if (ra_hasreg(r)) { | 2670 | if (ra_hasreg(r)) { |
2667 | ra_free(as, r); | 2671 | ra_free(as, r); |
2668 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) | 2672 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) |