aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_opt_split.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c
index 77b8e2dd..b0da7f3a 100644
--- a/src/lj_opt_split.c
+++ b/src/lj_opt_split.c
@@ -365,6 +365,11 @@ static void split_ir(jit_State *J)
365 split_emit(J, IRT(IR_PHI, IRT_SOFTFP), 365 split_emit(J, IRT(IR_PHI, IRT_SOFTFP),
366 hisubst[ir->op1], hisubst[ir->op2]); 366 hisubst[ir->op1], hisubst[ir->op2]);
367 break; 367 break;
368 case IR_HIOP:
369 J->cur.nins--; /* Drop joining HIOP. */
370 ir->prev = nir->op1;
371 hi = nir->op2;
372 break;
368 default: 373 default:
369 lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX); 374 lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX);
370 hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP), 375 hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP),
@@ -469,6 +474,11 @@ static void split_ir(jit_State *J)
469 split_emit(J, IRTI(IR_PHI), hiref, hiref2); 474 split_emit(J, IRTI(IR_PHI), hiref, hiref2);
470 break; 475 break;
471 } 476 }
477 case IR_HIOP:
478 J->cur.nins--; /* Drop joining HIOP. */
479 ir->prev = nir->op1;
480 hi = nir->op2;
481 break;
472 default: 482 default:
473 lua_assert(ir->o <= IR_NE); /* Comparisons. */ 483 lua_assert(ir->o <= IR_NE); /* Comparisons. */
474 split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]); 484 split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]);