AA-64 architecture
two byte opcodes




note: Except for the following differences in PM64
the two byte opcodes remain unchanged from IA-32.

 
modified two byte opcodes
 
opcode mnemonic
0Fh,34h SYSENTER
0Fh,35h SYSEXIT
AMD64 processors don't support these.
 
 
new two byte opcodes
 
opcode mnemonic
0Fh,01h,F8h SWAPGS
0Fh,6Eh
66h,0Fh,6Eh
0Fh,7Eh
66h,0Fh,7Eh
MOVD/MOVQ Pq,Eq
MOVD/MOVQ Vo,Eq
MOVD/MOVQ Eq,Pq
MOVD/MOVQ Eq,Vq
F3h,0Fh,2Ah
F2h,0Fh,2Ah
F3h,0Fh,2Ch
F2h,0Fh,2Ch
F3h,0Fh,2Dh
F2h,0Fh,2Dh
CVTSI2SS Vd,Eq
CVTSI2SD Vq,Eq
CVTTSS2SI Gq,Wd
CVTTSD2SI Gq,Wq
CVTSS2SI Gq,Wd
CVTSD2SI Gq,Wq
0Fh,D7h
66h,0Fh,D7h
PMOVMSKB Gq,PR
PMOVMSKB Gq,VR
0Fh,50h
66h,0Fh,50h
MOVMSKPS Gq,VR
MOVMSKPD Gq,VR
0Fh,C3h MOVNTI Mq,Gq
0Fh,C7h,/1 CMPXCHG16B Mo
CPUID indicates CMPXCHG16B support.



In PM64 the default operand size is 32 bits. However, the following instructions default to a 64 bit operand size.

 
implicit RSP references
 
opcode mnemonic
0Fh,A0h
0Fh,A8h
PUSH FS
PUSH GS
0Fh,A1h
0Fh,A9h
POP FS
POP GS
 
 
near branches
 
opcode mnemonic
0Fh,80..8Fh Jcc Jz
EM64T processors don't support a 66h prefix.
 
 
GDTR/IDTR loads/stores
 
opcode mnemonic
0Fh,01h,/0 SGDT Mt
0Fh,01h,/1 SIDT Mt
0Fh,01h,/2 LGDT Mt
0Fh,01h,/3 LIDT Mt
A 66h prefix is silently ignored.
 
 
CRx/DRx/TRx moves
 
opcode mnemonic
0Fh,20h MOV Rq,Cq
0Fh,22h MOV Cq,Rq
0Fh,21h MOV Rq,Dq
0Fh,23h MOV Dq,Rq
0Fh,24h MOV Rq,Tq
0Fh,26h MOV Tq,Rq
A 66h prefix is silently ignored.



main page