aboutsummaryrefslogtreecommitdiff
path: root/src/vm_x64.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_x64.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_x64.dasc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vm_x64.dasc b/src/vm_x64.dasc
index a2fa9bfa..9e0f58fd 100644
--- a/src/vm_x64.dasc
+++ b/src/vm_x64.dasc
@@ -3266,11 +3266,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
3266 |.if DUALNUM 3266 |.if DUALNUM
3267 | checkint RB, >5 3267 | checkint RB, >5
3268 | neg RBd 3268 | neg RBd
3269 | jz >3
3269 | jo >4 3270 | jo >4
3270 | setint RB 3271 | setint RB
3271 |9: 3272 |9:
3272 | mov [BASE+RA*8], RB 3273 | mov [BASE+RA*8], RB
3273 | ins_next 3274 | ins_next
3275 |3:
3276 | mov64 RB, U64x(80000000,00000000) // -0.
3277 | jmp <9
3274 |4: 3278 |4:
3275 | mov64 RB, U64x(41e00000,00000000) // 2^31. 3279 | mov64 RB, U64x(41e00000,00000000) // 2^31.
3276 | jmp <9 3280 | jmp <9