Merge branch 'master' into v2.1
This commit is contained in:
@@ -2667,7 +2667,7 @@ static void asm_head_root_base(ASMState *as)
|
||||
}
|
||||
|
||||
/* Coalesce BASE register for a side trace. */
|
||||
static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow)
|
||||
static Reg asm_head_side_base(ASMState *as, IRIns *irp)
|
||||
{
|
||||
IRIns *ir = IR(REF_BASE);
|
||||
Reg r = ir->r;
|
||||
@@ -2676,15 +2676,15 @@ static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow)
|
||||
if (rset_test(as->modset, r) || irt_ismarked(ir->t))
|
||||
ir->r = RID_INIT; /* No inheritance for modified BASE register. */
|
||||
if (irp->r == r) {
|
||||
rset_clear(allow, r); /* Mark same BASE register as coalesced. */
|
||||
return r; /* Same BASE register already coalesced. */
|
||||
} else if (ra_hasreg(irp->r) && rset_test(as->freeset, irp->r)) {
|
||||
rset_clear(allow, irp->r);
|
||||
emit_move(as, r, irp->r); /* Move from coalesced parent reg. */
|
||||
return irp->r;
|
||||
} else {
|
||||
emit_getgl(as, r, jit_base); /* Otherwise reload BASE. */
|
||||
}
|
||||
}
|
||||
return allow;
|
||||
return RID_NONE;
|
||||
}
|
||||
|
||||
/* -- Tail of trace ------------------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user