Avoid reuse of PHI registers, even for duplicate right PHIs.

This commit is contained in:
Mike Pall 2010-01-27 22:09:43 +01:00
parent 09b8f67cd8
commit 21d6709271

View File

@ -2655,7 +2655,7 @@ static void asm_phi_fixup(ASMState *as)
/* Setup right PHI reference. */ /* Setup right PHI reference. */
static void asm_phi(ASMState *as, IRIns *ir) static void asm_phi(ASMState *as, IRIns *ir)
{ {
RegSet allow = irt_isnum(ir->t) ? RSET_FPR : RSET_GPR; RegSet allow = (irt_isnum(ir->t) ? RSET_FPR : RSET_GPR) & ~as->phiset;
RegSet afree = (as->freeset & allow); RegSet afree = (as->freeset & allow);
IRIns *irl = IR(ir->op1); IRIns *irl = IR(ir->op1);
IRIns *irr = IR(ir->op2); IRIns *irr = IR(ir->op2);