aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2010-12-12 21:03:20 +0100
committerMike Pall <mike>2010-12-12 21:05:34 +0100
commita403cb13e473d4ee59e630eed98008b86791f889 (patch)
treed712658bd06dde877c61096006188946933c31b2
parent42f9b38663bb6ae38a93c27c65ac31f79dc04123 (diff)
downloadluajit-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.c2
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;