diff options
-rw-r--r-- | src/lj_opt_fold.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index ab8085d7..2240f5db 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -430,14 +430,14 @@ LJFOLDF(kfold_bswap64) | |||
430 | #endif | 430 | #endif |
431 | } | 431 | } |
432 | 432 | ||
433 | LJFOLD(LT KINT64 KINT) | 433 | LJFOLD(LT KINT64 KINT64) |
434 | LJFOLD(GE KINT64 KINT) | 434 | LJFOLD(GE KINT64 KINT64) |
435 | LJFOLD(LE KINT64 KINT) | 435 | LJFOLD(LE KINT64 KINT64) |
436 | LJFOLD(GT KINT64 KINT) | 436 | LJFOLD(GT KINT64 KINT64) |
437 | LJFOLD(ULT KINT64 KINT) | 437 | LJFOLD(ULT KINT64 KINT64) |
438 | LJFOLD(UGE KINT64 KINT) | 438 | LJFOLD(UGE KINT64 KINT64) |
439 | LJFOLD(ULE KINT64 KINT) | 439 | LJFOLD(ULE KINT64 KINT64) |
440 | LJFOLD(UGT KINT64 KINT) | 440 | LJFOLD(UGT KINT64 KINT64) |
441 | LJFOLDF(kfold_int64comp) | 441 | LJFOLDF(kfold_int64comp) |
442 | { | 442 | { |
443 | #if LJ_HASFFI | 443 | #if LJ_HASFFI |
@@ -565,6 +565,18 @@ LJFOLDF(kfold_add_kptr) | |||
565 | return lj_ir_kptr_(J, fleft->o, (char *)p + ofs); | 565 | return lj_ir_kptr_(J, fleft->o, (char *)p + ofs); |
566 | } | 566 | } |
567 | 567 | ||
568 | LJFOLD(ADD any KGC) | ||
569 | LJFOLD(ADD any KPTR) | ||
570 | LJFOLD(ADD any KKPTR) | ||
571 | LJFOLDF(kfold_add_kright) | ||
572 | { | ||
573 | if (fleft->o == IR_KINT || fleft->o == IR_KINT64) { | ||
574 | IRRef1 tmp = fins->op1; fins->op1 = fins->op2; fins->op2 = tmp; | ||
575 | return RETRYFOLD; | ||
576 | } | ||
577 | return NEXTFOLD; | ||
578 | } | ||
579 | |||
568 | /* -- Constant folding of conversions ------------------------------------- */ | 580 | /* -- Constant folding of conversions ------------------------------------- */ |
569 | 581 | ||
570 | LJFOLD(TOBIT KNUM KNUM) | 582 | LJFOLD(TOBIT KNUM KNUM) |