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 /src | |
| parent | 42f9b38663bb6ae38a93c27c65ac31f79dc04123 (diff) | |
| download | luajit-a403cb13e473d4ee59e630eed98008b86791f889.tar.gz luajit-a403cb13e473d4ee59e630eed98008b86791f889.tar.bz2 luajit-a403cb13e473d4ee59e630eed98008b86791f889.zip | |
Add missing PHI barrier to strength reduction of widening.
Diffstat (limited to 'src')
| -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; |
