aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2012-08-20 18:45:50 +0200
committerMike Pall <mike>2012-08-20 18:45:50 +0200
commitf2479a96542c639861fb40c721c07f9c53cae20a (patch)
tree3ce5bea0a68cd046493ef611bad66e64f374e85a
parentaf2cb0254217c2959da19cdfa382601b22eb3297 (diff)
downloadluajit-f2479a96542c639861fb40c721c07f9c53cae20a.tar.gz
luajit-f2479a96542c639861fb40c721c07f9c53cae20a.tar.bz2
luajit-f2479a96542c639861fb40c721c07f9c53cae20a.zip
Minor fixes to FOLD rules.
-rw-r--r--src/lj_opt_fold.c28
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
433LJFOLD(LT KINT64 KINT) 433LJFOLD(LT KINT64 KINT64)
434LJFOLD(GE KINT64 KINT) 434LJFOLD(GE KINT64 KINT64)
435LJFOLD(LE KINT64 KINT) 435LJFOLD(LE KINT64 KINT64)
436LJFOLD(GT KINT64 KINT) 436LJFOLD(GT KINT64 KINT64)
437LJFOLD(ULT KINT64 KINT) 437LJFOLD(ULT KINT64 KINT64)
438LJFOLD(UGE KINT64 KINT) 438LJFOLD(UGE KINT64 KINT64)
439LJFOLD(ULE KINT64 KINT) 439LJFOLD(ULE KINT64 KINT64)
440LJFOLD(UGT KINT64 KINT) 440LJFOLD(UGT KINT64 KINT64)
441LJFOLDF(kfold_int64comp) 441LJFOLDF(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
568LJFOLD(ADD any KGC)
569LJFOLD(ADD any KPTR)
570LJFOLD(ADD any KKPTR)
571LJFOLDF(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
570LJFOLD(TOBIT KNUM KNUM) 582LJFOLD(TOBIT KNUM KNUM)