aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2016-06-05 12:54:53 +0200
committerMike Pall <mike>2016-06-05 12:54:53 +0200
commita88dc57995a55d1b9a04db4822caf46acc840ca0 (patch)
tree41d60c276665a1ce2d9760b9a672415fecbbd3e0
parentce1ad870c3d9536c759ecada89717c3317d56a3d (diff)
parenta7bec69a7593b2887a6d1d8dd13272aa005c36fa (diff)
downloadluajit-a88dc57995a55d1b9a04db4822caf46acc840ca0.tar.gz
luajit-a88dc57995a55d1b9a04db4822caf46acc840ca0.tar.bz2
luajit-a88dc57995a55d1b9a04db4822caf46acc840ca0.zip
Merge branch 'master' into v2.1
-rw-r--r--src/lj_opt_sink.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lj_opt_sink.c b/src/lj_opt_sink.c
index 1b775f2d..af05ef46 100644
--- a/src/lj_opt_sink.c
+++ b/src/lj_opt_sink.c
@@ -153,10 +153,9 @@ static void sink_remark_phi(jit_State *J)
153 remark = 0; 153 remark = 0;
154 for (ir = IR(J->cur.nins-1); ir->o == IR_PHI; ir--) { 154 for (ir = IR(J->cur.nins-1); ir->o == IR_PHI; ir--) {
155 IRIns *irl = IR(ir->op1), *irr = IR(ir->op2); 155 IRIns *irl = IR(ir->op1), *irr = IR(ir->op2);
156 if (((irl->t.irt ^ irr->t.irt) & IRT_MARK)) 156 if (!((irl->t.irt ^ irr->t.irt) & IRT_MARK) && irl->prev == irr->prev)
157 remark = 1;
158 else if (irl->prev == irr->prev)
159 continue; 157 continue;
158 remark |= (~(irl->t.irt & irr->t.irt) & IRT_MARK);
160 irt_setmark(IR(ir->op1)->t); 159 irt_setmark(IR(ir->op1)->t);
161 irt_setmark(IR(ir->op2)->t); 160 irt_setmark(IR(ir->op2)->t);
162 } 161 }