diff options
author | Mike Pall <mike> | 2013-09-14 12:52:51 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2013-09-14 12:52:51 +0200 |
commit | 474bb21af18505c0bdb47a383188d10ea0157fa5 (patch) | |
tree | ec41b4afa17280e41815d287daf2f04bd2500623 | |
parent | f1e7a4477ca4a5a8ef8c64135d9093d02451bb22 (diff) | |
download | luajit2-474bb21af18505c0bdb47a383188d10ea0157fa5.tar.gz |
Fix ABC elimination.
-rw-r--r-- | src/lj_opt_fold.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index fe37b98a..470b6d44 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -1699,7 +1699,8 @@ LJFOLDF(abc_k) LJFOLD(ABC any any) LJFOLDF(abc_invar) { - if (!irt_isint(fins->t) && J->chain[IR_LOOP]) /* Currently marked as PTR. */ + /* Invariant ABC marked as PTR. Drop if op1 is invariant, too. */ + if (!irt_isint(fins->t) && fins->op1 < J->chain[IR_LOOP]) return DROPFOLD; return NEXTFOLD; } |