diff options
| author | Mike Pall <mike> | 2026-08-01 19:39:35 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2026-08-01 19:39:35 +0200 |
| commit | 5ed524c09fec64bed46b4bf74fa03be9083b0963 (patch) | |
| tree | 900b7177874a7a9acc1f7e42be6cb1f2621248f0 | |
| parent | e4d805163f0942693ae15fee3e3a8bdd9a08554b (diff) | |
| download | luajit-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
| -rw-r--r-- | src/lj_opt_fold.c | 2 |
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) | |||
| 867 | LJFOLD(DIV NEG NEG) | 867 | LJFOLD(DIV NEG NEG) |
| 868 | LJFOLDF(simplify_nummuldiv_negneg) | 868 | LJFOLDF(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 */ |
