aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c27
1 files changed, 0 insertions, 27 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 8200b240..34f70e27 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -1143,33 +1143,6 @@ LJFOLDF(simplify_numpow_xkint)
1143 return ref; 1143 return ref;
1144} 1144}
1145 1145
1146LJFOLD(POW any KNUM)
1147LJFOLDF(simplify_numpow_xknum)
1148{
1149 if (knumright == 0.5) /* x ^ 0.5 ==> sqrt(x) */
1150 return emitir(IRTN(IR_FPMATH), fins->op1, IRFPM_SQRT);
1151 return NEXTFOLD;
1152}
1153
1154LJFOLD(POW KNUM any)
1155LJFOLDF(simplify_numpow_kx)
1156{
1157 lua_Number n = knumleft;
1158 if (n == 2.0 && irt_isint(fright->t)) { /* 2.0 ^ i ==> ldexp(1.0, i) */
1159#if LJ_TARGET_X86ORX64
1160 /* Different IR_LDEXP calling convention on x86/x64 requires conversion. */
1161 fins->o = IR_CONV;
1162 fins->op1 = fins->op2;
1163 fins->op2 = IRCONV_NUM_INT;
1164 fins->op2 = (IRRef1)lj_opt_fold(J);
1165#endif
1166 fins->op1 = (IRRef1)lj_ir_knum_one(J);
1167 fins->o = IR_LDEXP;
1168 return RETRYFOLD;
1169 }
1170 return NEXTFOLD;
1171}
1172
1173/* -- Simplify conversions ------------------------------------------------ */ 1146/* -- Simplify conversions ------------------------------------------------ */
1174 1147
1175LJFOLD(CONV CONV IRCONV_NUM_INT) /* _NUM */ 1148LJFOLD(CONV CONV IRCONV_NUM_INT) /* _NUM */