diff options
| author | Mike Pall <mike> | 2010-01-27 22:09:43 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2010-01-27 22:09:43 +0100 |
| commit | 21d670927112ff6047a9a8f56a864a0c778b1956 (patch) | |
| tree | 84e33efed6f6d17ae97d131334dea28f8887a04c /src | |
| parent | 09b8f67cd8d181fdb0f4af3b72b6030f5496cb8b (diff) | |
| download | luajit-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.c | 2 |
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. */ |
| 2656 | static void asm_phi(ASMState *as, IRIns *ir) | 2656 | static 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); |
