diff options
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r-- | src/lj_asm_x86.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index 8b529086..bfbdb112 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h | |||
@@ -2502,7 +2502,7 @@ static void asm_head_root_base(ASMState *as) | |||
2502 | } | 2502 | } |
2503 | 2503 | ||
2504 | /* Coalesce or reload BASE register for a side trace. */ | 2504 | /* Coalesce or reload BASE register for a side trace. */ |
2505 | static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow) | 2505 | static Reg asm_head_side_base(ASMState *as, IRIns *irp) |
2506 | { | 2506 | { |
2507 | IRIns *ir = IR(REF_BASE); | 2507 | IRIns *ir = IR(REF_BASE); |
2508 | Reg r = ir->r; | 2508 | Reg r = ir->r; |
@@ -2511,15 +2511,15 @@ static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow) | |||
2511 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) | 2511 | if (rset_test(as->modset, r) || irt_ismarked(ir->t)) |
2512 | ir->r = RID_INIT; /* No inheritance for modified BASE register. */ | 2512 | ir->r = RID_INIT; /* No inheritance for modified BASE register. */ |
2513 | if (irp->r == r) { | 2513 | if (irp->r == r) { |
2514 | rset_clear(allow, r); /* Mark same BASE register as coalesced. */ | 2514 | return r; /* Same BASE register already coalesced. */ |
2515 | } else if (ra_hasreg(irp->r) && rset_test(as->freeset, irp->r)) { | 2515 | } else if (ra_hasreg(irp->r) && rset_test(as->freeset, irp->r)) { |
2516 | rset_clear(allow, irp->r); | ||
2517 | emit_rr(as, XO_MOV, r, irp->r); /* Move from coalesced parent reg. */ | 2516 | emit_rr(as, XO_MOV, r, irp->r); /* Move from coalesced parent reg. */ |
2517 | return irp->r; | ||
2518 | } else { | 2518 | } else { |
2519 | emit_getgl(as, r, jit_base); /* Otherwise reload BASE. */ | 2519 | emit_getgl(as, r, jit_base); /* Otherwise reload BASE. */ |
2520 | } | 2520 | } |
2521 | } | 2521 | } |
2522 | return allow; | 2522 | return RID_NONE; |
2523 | } | 2523 | } |
2524 | 2524 | ||
2525 | /* -- Tail of trace ------------------------------------------------------- */ | 2525 | /* -- Tail of trace ------------------------------------------------------- */ |