summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2022-01-13 14:40:11 +0100
committerMike Pall <mike>2022-01-13 14:40:11 +0100
commitc8bcf1e5fb8eb72c7e35604fdfd27bba512761bb (patch)
treed1ac59f1ed86bfceee69058ba554c410e65a8975
parente73916d811710ab02a4dfe447d621c99f4e7186c (diff)
downloadluajit2-c8bcf1e5fb8eb72c7e35604fdfd27bba512761bb.tar.gz
Fix ABC FOLD rule with constants.
Reported by XmiliaH.
-rw-r--r--src/lj_opt_fold.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 6bb3fc59..1723af60 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -1682,14 +1682,15 @@ LJFOLDF(abc_fwd)
LJFOLD(ABC any KINT)
LJFOLDF(abc_k)
{
+ PHIBARRIER(fleft);
if (LJ_LIKELY(J->flags & JIT_F_OPT_ABC)) {
IRRef ref = J->chain[IR_ABC];
IRRef asize = fins->op1;
while (ref > asize) {
IRIns *ir = IR(ref);
if (ir->op1 == asize && irref_isk(ir->op2)) {
- int32_t k = IR(ir->op2)->i;
- if (fright->i > k)
+ uint32_t k = (uint32_t)IR(ir->op2)->i;
+ if ((uint32_t)fright->i > k)
ir->op2 = fins->op2;
return DROPFOLD;
}