summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVictor van den Elzen <victor.vde@gmail.com>2010-11-07 19:56:14 +0100
committerVictor van den Elzen <victor.vde@gmail.com>2010-11-07 23:27:48 +0100
commitb3cee5a57ab2cd0a99ad01ac9db73e31ae90d519 (patch)
treeac9dfc68d616388aa3254e5e4d4f447149c7af71 /test
parent0bae3e5ffa72c141cffd61292ed0642e33d0495b (diff)
downloadnasm-b3cee5a57ab2cd0a99ad01ac9db73e31ae90d519.tar.gz
nasm-b3cee5a57ab2cd0a99ad01ac9db73e31ae90d519.tar.bz2
nasm-b3cee5a57ab2cd0a99ad01ac9db73e31ae90d519.zip
BR3058845: mostly fix bogus warning with implicit operand size override
The implicit operand size override code didn't set the operand size prefix, which confused the size calculation code for the range check. The BITS 64 operand size calculation is still off, but "fixing" it by making it 32-bit unless REX.W is set breaks PUSH and maybe others.
Diffstat (limited to 'test')
-rw-r--r--test/br3058845.asm14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/br3058845.asm b/test/br3058845.asm
new file mode 100644
index 0000000..b0de560
--- /dev/null
+++ b/test/br3058845.asm
@@ -0,0 +1,14 @@
+;Testname=unoptimized; Arguments=-O0 -fbin -obr3058845.bin; Files=stdout stderr br3058845.bin
+;Testname=optimized; Arguments=-Ox -fbin -obr3058845.bin; Files=stdout stderr br3058845.bin
+
+BITS 16
+cmp ax, 0xFFFF
+cmp eax, 0xFFFF_FFFF
+
+BITS 32
+cmp ax, 0xFFFF
+cmp eax, 0xFFFF_FFFF
+
+BITS 64
+cmp ax, 0xFFFF
+cmp eax, 0xFFFF_FFFF ; shouldn't warn, but does currently