summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c5
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)
811LJFOLD(BROR any BAND) 811LJFOLD(BROR any BAND)
812LJFOLDF(simplify_shift_andk) 812LJFOLDF(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