aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-01-27 22:09:43 +0100
committerMike Pall <mike>2010-01-27 22:09:43 +0100
commit21d670927112ff6047a9a8f56a864a0c778b1956 (patch)
tree84e33efed6f6d17ae97d131334dea28f8887a04c /src
parent09b8f67cd8d181fdb0f4af3b72b6030f5496cb8b (diff)
downloadluajit-21d670927112ff6047a9a8f56a864a0c778b1956.tar.gz
luajit-21d670927112ff6047a9a8f56a864a0c778b1956.tar.bz2
luajit-21d670927112ff6047a9a8f56a864a0c778b1956.zip
Avoid reuse of PHI registers, even for duplicate right PHIs.
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm.c2
1 files changed, 1 insertions, 1 deletions
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)
2655/* Setup right PHI reference. */ 2655/* Setup right PHI reference. */
2656static void asm_phi(ASMState *as, IRIns *ir) 2656static void asm_phi(ASMState *as, IRIns *ir)
2657{ 2657{
2658 RegSet allow = irt_isnum(ir->t) ? RSET_FPR : RSET_GPR; 2658 RegSet allow = (irt_isnum(ir->t) ? RSET_FPR : RSET_GPR) & ~as->phiset;
2659 RegSet afree = (as->freeset & allow); 2659 RegSet afree = (as->freeset & allow);
2660 IRIns *irl = IR(ir->op1); 2660 IRIns *irl = IR(ir->op1);
2661 IRIns *irr = IR(ir->op2); 2661 IRIns *irr = IR(ir->op2);