diff options
author | Mike Pall <mike> | 2010-12-12 21:03:20 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-12-12 21:05:34 +0100 |
commit | a403cb13e473d4ee59e630eed98008b86791f889 (patch) | |
tree | d712658bd06dde877c61096006188946933c31b2 | |
parent | 42f9b38663bb6ae38a93c27c65ac31f79dc04123 (diff) | |
download | luajit-a403cb13e473d4ee59e630eed98008b86791f889.tar.gz luajit-a403cb13e473d4ee59e630eed98008b86791f889.tar.bz2 luajit-a403cb13e473d4ee59e630eed98008b86791f889.zip |
Add missing PHI barrier to strength reduction of widening.
-rw-r--r-- | src/lj_opt_fold.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 1b35f2de..18471abf 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -778,6 +778,7 @@ LJFOLDF(simplify_zext64) | |||
778 | { | 778 | { |
779 | #if LJ_TARGET_X64 | 779 | #if LJ_TARGET_X64 |
780 | /* Eliminate widening. All 32 bit ops implicitly zero-extend the result. */ | 780 | /* Eliminate widening. All 32 bit ops implicitly zero-extend the result. */ |
781 | PHIBARRIER(fleft); | ||
781 | return LEFTFOLD; | 782 | return LEFTFOLD; |
782 | #else | 783 | #else |
783 | UNUSED(J); | 784 | UNUSED(J); |
@@ -790,6 +791,7 @@ LJFOLDF(simplify_sext64) | |||
790 | { | 791 | { |
791 | IRRef ref = fins->op1; | 792 | IRRef ref = fins->op1; |
792 | int64_t ofs = 0; | 793 | int64_t ofs = 0; |
794 | PHIBARRIER(fleft); | ||
793 | if (fleft->o == IR_ADD && irref_isk(fleft->op2)) { | 795 | if (fleft->o == IR_ADD && irref_isk(fleft->op2)) { |
794 | ofs = (int64_t)IR(fleft->op2)->i; | 796 | ofs = (int64_t)IR(fleft->op2)->i; |
795 | ref = fleft->op1; | 797 | ref = fleft->op1; |