diff --git a/src/lj_asm.c b/src/lj_asm.c index 48b6ec5a..4f5610b0 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c @@ -2655,7 +2655,7 @@ static void asm_phi_fixup(ASMState *as) /* Setup right PHI reference. */ 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); IRIns *irl = IR(ir->op1); IRIns *irr = IR(ir->op2);