aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_opt_loop.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lj_opt_loop.c b/src/lj_opt_loop.c
index e0e6990e..48207dd5 100644
--- a/src/lj_opt_loop.c
+++ b/src/lj_opt_loop.c
@@ -133,7 +133,11 @@ static void loop_emit_phi(jit_State *J, IRRef1 *subst, IRRef1 *phi, IRRef nphi)
133 while (!irref_isk(ref) && ref != subst[ref]) { 133 while (!irref_isk(ref) && ref != subst[ref]) {
134 IRIns *ir = IR(ref); 134 IRIns *ir = IR(ref);
135 irt_clearmark(ir->t); /* Unmark potential uses, too. */ 135 irt_clearmark(ir->t); /* Unmark potential uses, too. */
136 if (irt_isphi(ir->t) || irt_ispri(ir->t)) 136 if (irt_isphi(ir->t)) {
137 irt_clearmark(IR(subst[ref])->t);
138 break;
139 }
140 if (irt_ispri(ir->t))
137 break; 141 break;
138 irt_setphi(ir->t); 142 irt_setphi(ir->t);
139 if (nphi >= LJ_MAX_PHI) 143 if (nphi >= LJ_MAX_PHI)