Only fuse with spill slots for cross-section references.
This commit is contained in:
@@ -1307,7 +1307,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(as->freeset & allow) &&
|
if (!(as->freeset & allow) &&
|
||||||
(allow == RSET_EMPTY || ra_hasspill(ir->s) || ref < as->loopref))
|
(allow == RSET_EMPTY || ra_hasspill(ir->s) || iscrossref(as, ref)))
|
||||||
goto fusespill;
|
goto fusespill;
|
||||||
return ra_allocref(as, ref, allow);
|
return ra_allocref(as, ref, allow);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user