Handle joining IR_HIOP in SPLIT pass.
This commit is contained in:
parent
0688de5483
commit
f093a34a2f
@ -365,6 +365,11 @@ static void split_ir(jit_State *J)
|
|||||||
split_emit(J, IRT(IR_PHI, IRT_SOFTFP),
|
split_emit(J, IRT(IR_PHI, IRT_SOFTFP),
|
||||||
hisubst[ir->op1], hisubst[ir->op2]);
|
hisubst[ir->op1], hisubst[ir->op2]);
|
||||||
break;
|
break;
|
||||||
|
case IR_HIOP:
|
||||||
|
J->cur.nins--; /* Drop joining HIOP. */
|
||||||
|
ir->prev = nir->op1;
|
||||||
|
hi = nir->op2;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX);
|
lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX);
|
||||||
hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP),
|
hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP),
|
||||||
@ -469,6 +474,11 @@ static void split_ir(jit_State *J)
|
|||||||
split_emit(J, IRTI(IR_PHI), hiref, hiref2);
|
split_emit(J, IRTI(IR_PHI), hiref, hiref2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IR_HIOP:
|
||||||
|
J->cur.nins--; /* Drop joining HIOP. */
|
||||||
|
ir->prev = nir->op1;
|
||||||
|
hi = nir->op2;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
lua_assert(ir->o <= IR_NE); /* Comparisons. */
|
lua_assert(ir->o <= IR_NE); /* Comparisons. */
|
||||||
split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]);
|
split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]);
|
||||||
|
Loading…
Reference in New Issue
Block a user