diff options
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r-- | src/lj_opt_fold.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index e2d5c517..eb500db9 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -189,7 +189,7 @@ LJFOLD(POW KNUM KINT) | |||
189 | LJFOLDF(kfold_numpow) | 189 | LJFOLDF(kfold_numpow) |
190 | { | 190 | { |
191 | lua_Number a = knumleft; | 191 | lua_Number a = knumleft; |
192 | lua_Number b = cast_num(fright->i); | 192 | lua_Number b = (lua_Number)fright->i; |
193 | lua_Number y = lj_vm_foldarith(a, b, IR_POW - IR_ADD); | 193 | lua_Number y = lj_vm_foldarith(a, b, IR_POW - IR_ADD); |
194 | return lj_ir_knum(J, y); | 194 | return lj_ir_knum(J, y); |
195 | } | 195 | } |
@@ -545,13 +545,13 @@ LJFOLDF(kfold_tobit) | |||
545 | LJFOLD(CONV KINT IRCONV_NUM_INT) | 545 | LJFOLD(CONV KINT IRCONV_NUM_INT) |
546 | LJFOLDF(kfold_conv_kint_num) | 546 | LJFOLDF(kfold_conv_kint_num) |
547 | { | 547 | { |
548 | return lj_ir_knum(J, cast_num(fleft->i)); | 548 | return lj_ir_knum(J, (lua_Number)fleft->i); |
549 | } | 549 | } |
550 | 550 | ||
551 | LJFOLD(CONV KINT IRCONV_NUM_U32) | 551 | LJFOLD(CONV KINT IRCONV_NUM_U32) |
552 | LJFOLDF(kfold_conv_kintu32_num) | 552 | LJFOLDF(kfold_conv_kintu32_num) |
553 | { | 553 | { |
554 | return lj_ir_knum(J, cast_num((uint32_t)fleft->i)); | 554 | return lj_ir_knum(J, (lua_Number)(uint32_t)fleft->i); |
555 | } | 555 | } |
556 | 556 | ||
557 | LJFOLD(CONV KINT IRCONV_I64_INT) | 557 | LJFOLD(CONV KINT IRCONV_I64_INT) |
@@ -567,13 +567,13 @@ LJFOLDF(kfold_conv_kint_i64) | |||
567 | LJFOLD(CONV KINT64 IRCONV_NUM_I64) | 567 | LJFOLD(CONV KINT64 IRCONV_NUM_I64) |
568 | LJFOLDF(kfold_conv_kint64_num_i64) | 568 | LJFOLDF(kfold_conv_kint64_num_i64) |
569 | { | 569 | { |
570 | return lj_ir_knum(J, cast_num((int64_t)ir_kint64(fleft)->u64)); | 570 | return lj_ir_knum(J, (lua_Number)(int64_t)ir_kint64(fleft)->u64); |
571 | } | 571 | } |
572 | 572 | ||
573 | LJFOLD(CONV KINT64 IRCONV_NUM_U64) | 573 | LJFOLD(CONV KINT64 IRCONV_NUM_U64) |
574 | LJFOLDF(kfold_conv_kint64_num_u64) | 574 | LJFOLDF(kfold_conv_kint64_num_u64) |
575 | { | 575 | { |
576 | return lj_ir_knum(J, cast_num(ir_kint64(fleft)->u64)); | 576 | return lj_ir_knum(J, (lua_Number)ir_kint64(fleft)->u64); |
577 | } | 577 | } |
578 | 578 | ||
579 | LJFOLD(CONV KINT64 IRCONV_INT_I64) | 579 | LJFOLD(CONV KINT64 IRCONV_INT_I64) |
@@ -589,7 +589,7 @@ LJFOLDF(kfold_conv_knum_int_num) | |||
589 | lua_Number n = knumleft; | 589 | lua_Number n = knumleft; |
590 | if (!(fins->op2 & IRCONV_TRUNC)) { | 590 | if (!(fins->op2 & IRCONV_TRUNC)) { |
591 | int32_t k = lj_num2int(n); | 591 | int32_t k = lj_num2int(n); |
592 | if (irt_isguard(fins->t) && n != cast_num(k)) { | 592 | if (irt_isguard(fins->t) && n != (lua_Number)k) { |
593 | /* We're about to create a guard which always fails, like CONV +1.5. | 593 | /* We're about to create a guard which always fails, like CONV +1.5. |
594 | ** Some pathological loops cause this during LICM, e.g.: | 594 | ** Some pathological loops cause this during LICM, e.g.: |
595 | ** local x,k,t = 0,1.5,{1,[1.5]=2} | 595 | ** local x,k,t = 0,1.5,{1,[1.5]=2} |