mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-10 08:24:08 +00:00
sink_remark_phi must remark if any instruction was marked
This commit is contained in:
parent
1c6fd13dbd
commit
cbcd436361
@ -153,10 +153,10 @@ static void sink_remark_phi(jit_State *J)
|
|||||||
remark = 0;
|
remark = 0;
|
||||||
for (ir = IR(J->cur.nins-1); ir->o == IR_PHI; ir--) {
|
for (ir = IR(J->cur.nins-1); ir->o == IR_PHI; ir--) {
|
||||||
IRIns *irl = IR(ir->op1), *irr = IR(ir->op2);
|
IRIns *irl = IR(ir->op1), *irr = IR(ir->op2);
|
||||||
if (((irl->t.irt ^ irr->t.irt) & IRT_MARK))
|
if (!((irl->t.irt ^ irr->t.irt) & IRT_MARK) && irl->prev == irr->prev)
|
||||||
remark = 1;
|
|
||||||
else if (irl->prev == irr->prev)
|
|
||||||
continue;
|
continue;
|
||||||
|
/* Must remark if either was marked. */
|
||||||
|
remark = (~(irl->t.irt & irr->t.irt) & IRT_MARK);
|
||||||
irt_setmark(IR(ir->op1)->t);
|
irt_setmark(IR(ir->op1)->t);
|
||||||
irt_setmark(IR(ir->op2)->t);
|
irt_setmark(IR(ir->op2)->t);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user