aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_split.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-05-23 21:33:01 +0200
committerMike Pall <mike>2020-05-23 21:33:01 +0200
commitb2307c8ad817e350d65cc909a579ca2f77439682 (patch)
tree4984f3c3972d768220b7263eb5eb139d6049cfcb /src/lj_opt_split.c
parent5655be4546d9177890c69f0d0accac4773ff0887 (diff)
downloadluajit-b2307c8ad817e350d65cc909a579ca2f77439682.tar.gz
luajit-b2307c8ad817e350d65cc909a579ca2f77439682.tar.bz2
luajit-b2307c8ad817e350d65cc909a579ca2f77439682.zip
Remove pow() splitting and cleanup backends.
Diffstat (limited to 'src/lj_opt_split.c')
-rw-r--r--src/lj_opt_split.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c
index e526b49d..7925cfa5 100644
--- a/src/lj_opt_split.c
+++ b/src/lj_opt_split.c
@@ -403,27 +403,6 @@ static void split_ir(jit_State *J)
403 hi = split_call_li(J, hisubst, oir, ir, IRCALL_lj_vm_powi); 403 hi = split_call_li(J, hisubst, oir, ir, IRCALL_lj_vm_powi);
404 break; 404 break;
405 case IR_FPMATH: 405 case IR_FPMATH:
406 /* Try to rejoin pow from EXP2, MUL and LOG2. */
407 if (nir->op2 == IRFPM_EXP2 && nir->op1 > J->loopref) {
408 IRIns *irp = IR(nir->op1);
409 if (irp->o == IR_CALLN && irp->op2 == IRCALL_softfp_mul) {
410 IRIns *irm4 = IR(irp->op1);
411 IRIns *irm3 = IR(irm4->op1);
412 IRIns *irm12 = IR(irm3->op1);
413 IRIns *irl1 = IR(irm12->op1);
414 if (irm12->op1 > J->loopref && irl1->o == IR_CALLN &&
415 irl1->op2 == IRCALL_lj_vm_log2) {
416 IRRef tmp = irl1->op1; /* Recycle first two args from LOG2. */
417 IRRef arg3 = irm3->op2, arg4 = irm4->op2;
418 J->cur.nins--;
419 tmp = split_emit(J, IRT(IR_CARG, IRT_NIL), tmp, arg3);
420 tmp = split_emit(J, IRT(IR_CARG, IRT_NIL), tmp, arg4);
421 ir->prev = tmp = split_emit(J, IRTI(IR_CALLN), tmp, IRCALL_pow);
422 hi = split_emit(J, IRT(IR_HIOP, IRT_SOFTFP), tmp, tmp);
423 break;
424 }
425 }
426 }
427 hi = split_call_l(J, hisubst, oir, ir, IRCALL_lj_vm_floor + ir->op2); 406 hi = split_call_l(J, hisubst, oir, ir, IRCALL_lj_vm_floor + ir->op2);
428 break; 407 break;
429 case IR_LDEXP: 408 case IR_LDEXP: