aboutsummaryrefslogtreecommitdiff
path: root/src/vm_mips64.dasc
diff options
context:
space:
mode:
authorMike Pall <mike>2026-01-09 18:46:32 +0100
committerMike Pall <mike>2026-01-09 18:46:32 +0100
commit707c12bf00dafdfd3899b1a6c36435dbbf6c7022 (patch)
tree0b1d335e5c4700fd8b5a4955d3365c8cdf4bc646 /src/vm_mips64.dasc
parent3015b6187e00bf39b4b263a1006654600b554eb3 (diff)
downloadluajit-v2.1.tar.gz
luajit-v2.1.tar.bz2
luajit-v2.1.zip
DUALNUM: Improve/fix edge cases of unary minus.HEADv2.1
Thanks to Sergey Kaplun. #1422 #1418
Diffstat (limited to '')
-rw-r--r--src/vm_mips64.dasc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vm_mips64.dasc b/src/vm_mips64.dasc
index 8365da8e..310269ce 100644
--- a/src/vm_mips64.dasc
+++ b/src/vm_mips64.dasc
@@ -3804,7 +3804,8 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
3804 | sextw CARG1, CARG1 3804 | sextw CARG1, CARG1
3805 | beq CARG1, TMP1, ->vmeta_unm // Meta handler deals with -2^31. 3805 | beq CARG1, TMP1, ->vmeta_unm // Meta handler deals with -2^31.
3806 |. negu CARG1, CARG1 3806 |. negu CARG1, CARG1
3807 | zextw CARG1, CARG1 3807 | beqz CARG1, >3
3808 |. zextw CARG1, CARG1
3808 | settp CARG1, TISNUM 3809 | settp CARG1, TISNUM
3809 |1: 3810 |1:
3810 | ins_next1 3811 | ins_next1
@@ -3816,6 +3817,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
3816 |. dsll TMP1, TMP1, 32 3817 |. dsll TMP1, TMP1, 32
3817 | b <1 3818 | b <1
3818 |. xor CARG1, CARG1, TMP1 3819 |. xor CARG1, CARG1, TMP1
3820 |3:
3821 | b <1
3822 |. dsll CARG1, TMP1, 32
3819 break; 3823 break;
3820 case BC_LEN: 3824 case BC_LEN:
3821 | // RA = dst*8, RD = src*8 3825 | // RA = dst*8, RD = src*8