summaryrefslogtreecommitdiff
path: root/test/nop.asm
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-11-12 22:55:27 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-11-12 22:56:07 -0800
commitbb72f7f111abe0e01081506caa11afdf37b95857 (patch)
tree8a7e6b8fdca3c24701cb95fb93ed82304b509ffa /test/nop.asm
parentfb0c90cdbeb63e08ffeaa5377b13e5c7743cec00 (diff)
downloadnasm-bb72f7f111abe0e01081506caa11afdf37b95857.tar.gz
Un-special-case "xchg rax,rax"; disassemble o64
Un-special-case "xchg rax,rax"; allow it to be encoded as 48 90 for orthogonality's sake. It's a no-op, to be sure, but so are many other instructions. "xchg eax,eax" is still special-cased in 64-bit mode since it is not a no-op; unadorned opcode 90 is now simply "nop" and nothing else. Make the disassembler detect unused REX.W and display them as an "o64" prefix.
Diffstat (limited to 'test/nop.asm')
-rw-r--r--test/nop.asm14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/nop.asm b/test/nop.asm
new file mode 100644
index 00000000..3dabaa07
--- /dev/null
+++ b/test/nop.asm
@@ -0,0 +1,14 @@
+ bits 64
+
+ nop
+ o64 nop
+ pause
+ o64 pause
+
+ xchg ax,ax
+ xchg eax,eax
+ xchg rax,rax
+
+ rep xchg ax,ax
+ rep xchg eax,eax
+ rep xchg rax,rax