From: Rod Pemberton on

If NOP was deprecated or obsoleted for AA64, I can't find it stated any the
Intel or AMD 64-bit manuals. But, it seems NDISASM is disassembling it as
an XCHG RAX,RAX with REX.W=1. (2.06rc8 and 2.08rc9)

00000000 90 nop
00000001 4090 nop
00000003 4890 xchg rax,rax

From the manuals, 90h is a NOP instruction for any exchange of AX, EAX, RAX
with itself. Use of the new registers via a REX is an XCHG. If all 40h to
4Fh prefixes are inserted, it's disassembling REX.W=0 with REX.R=0 as NOP,
which I believe is correct. But, it's also disassembling REX.W=1 with
REX.R=0 as XCHG RAX,RAX which I currently believe is incorrect and should be
NOP, at least according to both sets of manuals, AFAICT.

Comments?


Rod Pemberton