aboutsummaryrefslogtreecommitdiff
path: root/src/vm_x86.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_x86.dasc
parent3015b6187e00bf39b4b263a1006654600b554eb3 (diff)
downloadluajit-707c12bf00dafdfd3899b1a6c36435dbbf6c7022.tar.gz
luajit-707c12bf00dafdfd3899b1a6c36435dbbf6c7022.tar.bz2
luajit-707c12bf00dafdfd3899b1a6c36435dbbf6c7022.zip
DUALNUM: Improve/fix edge cases of unary minus.HEADv2.1
Thanks to Sergey Kaplun. #1422 #1418
Diffstat (limited to 'src/vm_x86.dasc')
-rw-r--r--src/vm_x86.dasc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc
index d7d82b32..7e3d68a0 100644
--- a/src/vm_x86.dasc
+++ b/src/vm_x86.dasc
@@ -3856,11 +3856,16 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
3856 | checkint RD, >5 3856 | checkint RD, >5
3857 | mov RB, [BASE+RD*8] 3857 | mov RB, [BASE+RD*8]
3858 | neg RB 3858 | neg RB
3859 | jz >3
3859 | jo >4 3860 | jo >4
3860 | mov dword [BASE+RA*8+4], LJ_TISNUM 3861 | mov dword [BASE+RA*8+4], LJ_TISNUM
3862 |8:
3861 | mov dword [BASE+RA*8], RB 3863 | mov dword [BASE+RA*8], RB
3862 |9: 3864 |9:
3863 | ins_next 3865 | ins_next
3866 |3:
3867 | mov dword [BASE+RA*8+4], 0x80000000 // -0.
3868 | jmp <8
3864 |4: 3869 |4:
3865 | mov dword [BASE+RA*8+4], 0x41e00000 // 2^31. 3870 | mov dword [BASE+RA*8+4], 0x41e00000 // 2^31.
3866 | mov dword [BASE+RA*8], 0 3871 | mov dword [BASE+RA*8], 0