]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Handle joining IR_HIOP in SPLIT pass.
authorMike Pall <mike>
Mon, 2 Jul 2012 20:50:03 +0000 (22:50 +0200)
committerMike Pall <mike>
Mon, 2 Jul 2012 20:50:03 +0000 (22:50 +0200)
src/lj_opt_split.c

index 77b8e2dd93d9d3e00672156f34fe85cb0effcb32..b0da7f3a6e54433822ca4027b3080e57306518a4 100644 (file)
@@ -365,6 +365,11 @@ static void split_ir(jit_State *J)
          split_emit(J, IRT(IR_PHI, IRT_SOFTFP),
                     hisubst[ir->op1], hisubst[ir->op2]);
        break;
+      case IR_HIOP:
+       J->cur.nins--;  /* Drop joining HIOP. */
+       ir->prev = nir->op1;
+       hi = nir->op2;
+       break;
       default:
        lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX);
        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);
        break;
        }
+      case IR_HIOP:
+       J->cur.nins--;  /* Drop joining HIOP. */
+       ir->prev = nir->op1;
+       hi = nir->op2;
+       break;
       default:
        lua_assert(ir->o <= IR_NE);  /* Comparisons. */
        split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]);