aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2026-08-01 19:39:35 +0200
committerMike Pall <mike>2026-08-01 19:39:35 +0200
commit5ed524c09fec64bed46b4bf74fa03be9083b0963 (patch)
tree900b7177874a7a9acc1f7e42be6cb1f2621248f0 /src
parente4d805163f0942693ae15fee3e3a8bdd9a08554b (diff)
downloadluajit-5ed524c09fec64bed46b4bf74fa03be9083b0963.tar.gz
luajit-5ed524c09fec64bed46b4bf74fa03be9083b0963.tar.bz2
luajit-5ed524c09fec64bed46b4bf74fa03be9083b0963.zip
Don't fold -a / -b for unsigned operands.
Thanks to Peter Marreck and Peter Cawley. #1499
Diffstat (limited to 'src')
-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 03d869d00..3738f3570 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -867,6 +867,8 @@ LJFOLD(MUL NEG NEG)
867LJFOLD(DIV NEG NEG) 867LJFOLD(DIV NEG NEG)
868LJFOLDF(simplify_nummuldiv_negneg) 868LJFOLDF(simplify_nummuldiv_negneg)
869{ 869{
870 if (fins->o == IR_DIV && (irt_isu32(fins->t) || irt_isu64(fins->t)))
871 return NEXTFOLD;
870 PHIBARRIER(fleft); 872 PHIBARRIER(fleft);
871 PHIBARRIER(fright); 873 PHIBARRIER(fright);
872 fins->op1 = fleft->op1; /* (-a) o (-b) ==> a o b */ 874 fins->op1 = fleft->op1; /* (-a) o (-b) ==> a o b */