svn commit: r2031 - in trunk/yasm/modules/arch/x86: tests
peter at tortall.net
peter at tortall.net
Sat Feb 2 11:23:18 PST 2008
Author: peter
Date: Sat Feb 2 11:23:17 2008
New Revision: 2031
Modified:
trunk/yasm/modules/arch/x86/gen_x86_insn.py
trunk/yasm/modules/arch/x86/tests/xchg64.hex
trunk/yasm/modules/arch/x86/x86id.c
Changeset:
http://www.tortall.net/projects/yasm/changeset/2031
Log:
Revert r2029. According to both AMD64 and Intel 64 instruction set
references, REX + 90h opcode is not NOP, but a valid XCHG:
"The x86 architecture commonly uses the XCHG EAX, EAX instruction (opcode
90h) as a one-byte NOP. In 64-bit mode, the processor treats opcode 90h as
a true NOP only if it would exchange rAX with itself. Without this special
handling, the instruction would zero-extend the upper 32 bits of RAX, and
thus it would not be a true nooperation. Opcode 90h can still be used to
exchange rAX and r8 if the appropriate REX prefix is used."
Noticed by: nasm64developer at users.sf.net
More information about the yasm-cvs
mailing list