diff options
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r-- | src/lj_opt_fold.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 69ade882..312c9cf0 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -811,17 +811,16 @@ LJFOLD(BROL any BAND) | |||
811 | LJFOLD(BROR any BAND) | 811 | LJFOLD(BROR any BAND) |
812 | LJFOLDF(simplify_shift_andk) | 812 | LJFOLDF(simplify_shift_andk) |
813 | { | 813 | { |
814 | #if LJ_TARGET_MASKEDSHIFT | ||
815 | IRIns *irk = IR(fright->op2); | 814 | IRIns *irk = IR(fright->op2); |
816 | PHIBARRIER(fright); | 815 | PHIBARRIER(fright); |
817 | if (irk->o == IR_KINT) { /* i o (j & 31) ==> i o j */ | 816 | if ((fins->o < IR_BROL ? LJ_TARGET_MASKSHIFT : LJ_TARGET_MASKROT) && |
817 | irk->o == IR_KINT) { /* i o (j & 31) ==> i o j */ | ||
818 | int32_t k = irk->i & 31; | 818 | int32_t k = irk->i & 31; |
819 | if (k == 31) { | 819 | if (k == 31) { |
820 | fins->op2 = fright->op1; | 820 | fins->op2 = fright->op1; |
821 | return RETRYFOLD; | 821 | return RETRYFOLD; |
822 | } | 822 | } |
823 | } | 823 | } |
824 | #endif | ||
825 | return NEXTFOLD; | 824 | return NEXTFOLD; |
826 | } | 825 | } |
827 | 826 | ||