;
; Table of assembler instructions for Free Pascal
; adapted from Netwide Assembler by Peter Vreman
;
; The Netwide Assembler is copyright (C) 1996 Simon Tatham and
; Julian Hall. All rights reserved.
;
; Layout
; [OPCODE,attnameX]  (X means suffix in att name)
; arguments   bytes   flags
;

[NONE]
(Ch_None, Ch_None, Ch_None)
void                  void                            none

[AAA]
(Ch_MEAX, Ch_WFlags, Ch_None)
void                  \1\x37                          8086,NOX86_64

[AAD,aadX]
(Ch_MEAX, Ch_WFlags, Ch_None)
void                  \2\xD5\x0A                      8086,NOX86_64
imm                   \1\xD5\24                       8086,SB,NOX86_64

[AAM,aamX]
(Ch_MEAX, Ch_WFlags, Ch_None)
void                  \2\xD4\x0A                      8086,NOX86_64
imm                   \1\xD4\24                       8086,SB,NOX86_64

[AAS]
(Ch_MEAX, Ch_WFlags, Ch_None)
void                  \1\x3F                          8086,NOX86_64

[ADC,adcX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
regmem,reg16|32|64    \320\1\x11\101                  8086,SM
reg16|32|64,regmem    \320\1\x13\110                  8086,SM
rm8,reg8              \1\x10\101                      8086
reg8,rm8              \1\x12\110                      8086
rm16|32|64,imm8       \320\1\x83\202\15               8086
reg_eax,imm           \325\1\x15\41                   386,SM
reg_rax,imm           \326\1\x15\255                  X86_64,SM
rm32,imm              \325\1\x81\202\41               386,SM
rm64,imm              \326\1\x81\202\255              X86_64,SM
reg_ax,imm            \324\1\x15\31                   8086,SW
rm16,imm              \324\1\x81\202\31               8086,SW
reg_al,imm            \1\x14\21                       8086,SB
rm8,imm               \1\x80\202\21                   8086,SB

[ADD,addX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\1\x01\101                  8086,SM
reg16|32|64,regmem    \320\1\x03\110                  8086,SM
rm8,reg8              \1\x00\101                      8086
reg8,rm8              \1\x02\110                      8086,SM
rm16|32|64,imm8       \320\1\x83\200\15               8086
reg_eax,imm           \320\1\x05\41                   386,SM
reg_rax,imm           \326\1\x05\255                  X86_64,SM
rm32,imm              \325\1\x81\200\41               386,SM
rm64,imm              \326\1\x81\200\255              X86_64,SM
reg_ax,imm            \324\1\x05\31                   8086,SW
rm16,imm              \324\1\x81\200\31               8086,SW
reg_al,imm            \1\x04\21                       8086,SB
rm8,imm               \1\x80\200\21                   8086,SB

[AND,andX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\1\x21\101                  8086,SM
reg16|32|64,regmem    \320\1\x23\110                  8086,SM
rm8,reg8              \1\x20\101                      8086
reg8,rm8              \1\x22\110                      8086
rm16|32|64,imm8       \320\1\x83\204\15               8086
reg_eax,imm           \325\1\x25\41                   386,SM
reg_rax,imm           \326\1\x25\255                  X86_64,SM
rm32,imm              \325\1\x81\204\41               386,SM
rm64,imm              \326\1\x81\204\255              X86_64,SM
reg_ax,imm            \324\1\x25\31                   8086,SW
rm16,imm              \324\1\x81\204\31               8086,SW
reg_al,imm            \1\x24\21                       8086,SB
rm8,imm               \1\x80\204\21                   8086,SB

[ARPL,arplX]
(Ch_WFlags, Ch_None, Ch_None)
reg16,reg16           \1\x63\101                      286,PROT,NOX86_64
mem,reg16             \1\x63\101                      286,PROT,SM,NOX86_64

[BOUND,boundX]
(Ch_Rop1, Ch_None, Ch_None)
reg16|32,mem          \320\1\x62\110                  186,NOX86_64

[BSF,bsfX]
(Ch_Wop2, Ch_WFlags, Ch_Rop1)
reg16|32|64,regmem    \320\2\x0F\xBC\110              386,SM

[BSR,bsrX]
(Ch_Wop2, Ch_WFlags, Ch_Rop1)
reg16|32|64,regmem    \320\2\x0F\xBD\110              386,SM

[BSWAP,bswapX]
(Ch_MOp1, Ch_None, Ch_None)
reg32|64              \320\1\x0F\10\xC8               486

[BT,btX]
(Ch_WFlags, Ch_Rop1, Ch_Rop2)
regmem,reg16|32|64    \320\2\x0F\xA3\101              386,SM
rm16|32|64,imm        \320\2\x0F\xBA\204\25           386,SB

[BTC,btcX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\2\x0F\xBB\101              386,SM
rm16|32|64,imm        \320\2\x0F\xBA\207\25           386,SB

[BTR,btrX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\2\x0F\xB3\101              386,SM
rm16|32|64,imm        \320\2\x0F\xBA\206\25           386,SB

[BTS,btsX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\2\x0F\xAB\101              386,SM
rm16|32|64,imm        \320\2\x0F\xBA\205\25           386,SB

[CALL,call]
; don't know value of any register
(Ch_ROp1, Ch_All, Ch_None)
imm                   \320\1\xE8\64                   8086
rm16|32|64            \320\1\xFF\202                  8086
imm|near              \320\1\xE8\64                   8086
imm|far               \320\1\x9A\34\37                8086,ND,NOX86_64
mem|near              \320\1\xFF\202                  8086
mem|far               \320\1\xFF\203                  8086
imm:imm               \327\1\x9A\35\30                8086,NOX86_64
imm16:imm             \324\1\x9A\31\30                8086,NOX86_64
imm:imm16             \324\1\x9A\31\30                8086,NOX86_64
imm32:imm             \325\1\x9A\41\30                386,NOX86_64
imm:imm32             \325\1\x9A\41\30                386,NOX86_64

[CBW,cbtw]
(Ch_MEAX, Ch_None, Ch_None)
void                  \324\1\x98                      8086

[CDQ,cltd]
(Ch_MEAX, Ch_WEDX, Ch_None)
void                  \325\1\x99                      386

[CLC]
(Ch_WFlags, Ch_None, Ch_None)
void                  \1\xF8                          8086

[CLD]
(Ch_CDirFlag, Ch_None, Ch_None)
void                  \1\xFC                          8086

[CLI]
(Ch_WFlags, Ch_None, Ch_None)
void                  \1\xFA                          8086

[CLTS]
(Ch_None, Ch_None, Ch_None)
void                  \2\x0F\x06                      286,PRIV

[CMC]
(Ch_WFlags, Ch_None, Ch_None)
void                  \1\xF5                          8086

[CMP,cmpX]
(Ch_ROp1, Ch_ROp2, Ch_WFlags)
regmem,reg16|32|64    \320\1\x39\101                  8086,SM
reg16|32|64,regmem    \320\1\x3B\110                  8086,SM
rm8,reg8              \1\x38\101                      8086
reg8,rm8              \1\x3A\110                      8086
rm16|32|64,imm8       \320\1\x83\207\15               8086
reg_eax,imm           \325\1\x3D\41                   386,SM
reg_rax,imm           \326\1\x3D\255                  X86_64,SM
rm32,imm              \325\1\x81\207\41               386,SM
rm64,imm              \326\1\x81\207\255              X86_64,SM
reg_ax,imm            \324\1\x3D\31                   8086,SW
rm16,imm              \324\1\x81\207\31               8086,SW
reg_al,imm            \1\x3C\21                       8086,SB
rm8,imm               \1\x80\207\21                   8086,SB
mem,imm32             \325\1\x81\207\41               386,SD
mem,imm16             \324\1\x81\207\31               8086,SW
mem,imm8              \1\x80\207\21                   8086,SB

[CMPSB]
(Ch_All, Ch_None, Ch_None)
void                  \332\1\xA6                      8086

[CMPSD,cmpsl]
(Ch_All, Ch_None, Ch_None)
void                  \332\325\1\xA7                  386
xmmreg,xmmrm,imm      \334\2\x0F\xC2\110\26           WILLAMETTE,SSE2,SM2,SB,AR2

[CMPSW]
(Ch_All, Ch_None, Ch_None)
void                  \332\324\1\xA7                  8086

[CMPXCHG,cmpxchgX]
(Ch_All, Ch_None, Ch_None)
regmem,reg16|32|64    \320\2\x0F\xB1\101              PENT,SM
rm8,reg8              \2\x0F\xB0\101                  PENT

[CMPXCHG486,cmpxchg486X]
(Ch_All, Ch_None, Ch_None)
regmem,reg16|32|64    \320\2\x0F\xA7\101              486,SM
rm8,reg8              \2\x0F\xA6\101                  486,UNDOC

[CMPXCHG8B,cmpxchg8b]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xC7\201                  PENT

[CPUID]
(Ch_All, Ch_None, Ch_none)
void                  \2\x0F\xA2                      PENT

[CWD]
(Ch_MEAX, Ch_WEDX, Ch_None)
void                  \324\1\x99                      8086

[CWDE,cwtl]
(Ch_MEAX, Ch_None, Ch_None)
void                  \325\1\x98                      386

[DAA]
(Ch_MEAX, Ch_None, Ch_None)
void                  \1\x27                          8086,NOX86_64

[DAS]
(Ch_MEAX, Ch_None, Ch_None)
void                  \1\x2F                          8086,NOX86_64

[DEC,decX]
(Ch_Mop1, Ch_WFlags, Ch_None)
reg16|32              \320\10\x48                     8086,NOX86_64
rm16|32|64            \320\1\xFF\201                  8086
rm8                   \1\xFE\201                      8086

[DIV,divX]
(Ch_RWEAX, Ch_WEDX, Ch_WFlags)
rm16|32|64            \320\1\xF7\206                  8086
rm8                   \1\xF6\206                      8086

[EMMS]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\x0F\x77                      PENT,MMX

[ENTER,enterX]
(Ch_RWESP, Ch_None, Ch_None)
imm,imm               \1\xC8\30\25                    186

[F2XM1]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF0                      8086,FPU

[FABS]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE1                      8086,FPU

[FADD,faddF]
(Ch_FPU, Ch_ROp1, Ch_None)
mem32                 \1\xD8\200                      8086,FPU
mem64                 \1\xDC\200                      8086,FPU
void                  \2\xDE\xC1                      8086,FPU
fpureg|to             \1\xDC\10\xC0                   8086,FPU
fpureg,fpu0           \1\xDC\10\xC0                   8086,FPU
fpureg                \1\xD8\10\xC0                   8086,FPU
fpu0,fpureg           \1\xD8\11\xC0                   8086,FPU

[FADDP,faddpF]
(Ch_FPU, Ch_ROp1, Ch_None)
void                  \2\xDE\xC1                      8086,FPU
fpureg                \1\xDE\10\xC0                   8086,FPU
fpureg,fpu0           \1\xDE\10\xC0                   8086,FPU

[FBLD,fbldF]
(Ch_Rop1, Ch_FPU, Ch_None)
mem80                 \1\xDF\204                      8086,FPU
mem                   \1\xDF\204                      8086,FPU

[FBSTP,fbstpF]
(Ch_Wop1, Ch_FPU, Ch_None)
mem80                 \1\xDF\206                      8086,FPU
mem                   \1\xDF\206                      8086,FPU

[FCHS]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE0                      8086,FPU

[FCLEX]
(Ch_FPU, Ch_None, Ch_None)
void                  \3\x9B\xDB\xE2                  8086,FPU

[FCMOVB,fcmovbF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDA\xC1                      P6,FPU
fpureg                \1\xDA\10\xC0                   P6,FPU
fpu0,fpureg           \1\xDA\11\xC0                   P6,FPU

[FCMOVBE,fcmovbeF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDA\xD1                      P6,FPU
fpureg                \1\xDA\10\xD0                   P6,FPU
fpu0,fpureg           \1\xDA\11\xD0                   P6,FPU

[FCMOVE,fcmoveF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDA\xC9                      P6,FPU
fpureg                \1\xDA\10\xC8                   P6,FPU
fpu0,fpureg           \1\xDA\11\xC8                   P6,FPU

[FCMOVNB,fcmovnbF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDB\xC1                      P6,FPU
fpureg                \1\xDB\10\xC0                   P6,FPU
fpu0,fpureg           \1\xDB\11\xC0                   P6,FPU

[FCMOVNBE,fcmovnbeF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDB\xD1                      P6,FPU
fpureg                \1\xDB\10\xD0                   P6,FPU
fpu0,fpureg           \1\xDB\11\xD0                   P6,FPU

[FCMOVNE,fcmovneF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDB\xC9                      P6,FPU
fpureg                \1\xDB\10\xC8                   P6,FPU
fpu0,fpureg           \1\xDB\11\xC8                   P6,FPU

[FCMOVNU,fcmovnuF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDB\xD9                      P6,FPU
fpureg                \1\xDB\10\xD8                   P6,FPU
fpu0,fpureg           \1\xDB\11\xD8                   P6,FPU

[FCMOVU,fcmovuF]
(Ch_FPU, Ch_RFLAGS, Ch_None)
void                  \2\xDA\xD9                      P6,FPU
fpureg                \1\xDA\10\xD8                   P6,FPU
fpu0,fpureg           \1\xDA\11\xD8                   P6,FPU

[FCOM,fcomF]
(Ch_FPU, Ch_None, Ch_None)
mem32                 \1\xD8\202                      8086,FPU
mem64                 \1\xDC\202                      8086,FPU
void                  \2\xD8\xD1                      8086,FPU
fpureg                \1\xD8\10\xD0                   8086,FPU
fpu0,fpureg           \1\xD8\11\xD0                   8086,FPU

[FCOMI,fcomiF]
(Ch_WFLAGS, Ch_None, Ch_None)
void                  \2\xDB\xF1                      P6,FPU
fpureg                \1\xDB\10\xF0                   P6,FPU
fpu0,fpureg           \1\xDB\11\xF0                   P6,FPU

[FCOMIP,fcomipF]
(Ch_FPU, Ch_WFLAGS, Ch_None)
void                  \2\xDF\xF1                      P6,FPU
fpureg                \1\xDF\10\xF0                   P6,FPU
fpu0,fpureg           \1\xDF\11\xF0                   P6,FPU

[FCOMP,fcompF]
(Ch_FPU, Ch_None, Ch_None)
mem32                 \1\xD8\203                      8086,FPU
mem64                 \1\xDC\203                      8086,FPU
void                  \2\xD8\xD9                      8086,FPU
fpureg                \1\xD8\10\xD8                   8086,FPU
fpu0,fpureg           \1\xD8\11\xD8                   8086,FPU

[FCOMPP]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDE\xD9                      8086,FPU

[FCOS]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFF                      386,FPU

[FDECSTP]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF6                      8086,FPU

[FDISI]
(Ch_FPU, Ch_None, Ch_None)
void                  \3\x9B\xDB\xE1                  8086,FPU

[FDIV,fdivF]
(Ch_FPU, Ch_ROp1, Ch_None)
mem32                 \1\xD8\206                      8086,FPU
mem64                 \1\xDC\206                      8086,FPU
void                  \2\xDC\xF1                      8086,FPU
fpureg|to             \1\xDC\10\xF0                   8086,FPU
fpureg,fpu0           \1\xDC\10\xF0                   8086,FPU
fpureg                \1\xD8\10\xF0                   8086,FPU
fpu0,fpureg           \1\xD8\11\xF0                   8086,FPU

[FDIVP,fdivpF]
(Ch_FPU, Ch_ROp1, Ch_None)
void                  \2\xDE\xF1                      8086,FPU
fpureg,fpu0           \1\xDE\10\xF0                   8086,FPU
fpureg                \1\xDE\10\xF0                   8086,FPU

[FDIVR,fdivrF]
(Ch_FPU, Ch_ROp1, Ch_None)
mem32                 \1\xD8\207                      8086,FPU
mem64                 \1\xDC\207                      8086,FPU
void                  \2\xDC\xF9                      8086,FPU
fpureg|to             \1\xDC\10\xF8                   8086,FPU
fpureg,fpu0           \1\xDC\10\xF8                   8086,FPU
fpureg                \1\xD8\10\xF8                   8086,FPU
fpu0,fpureg           \1\xD8\11\xF8                   8086,FPU

[FDIVRP,fdivrpF]
(Ch_FPU, Ch_ROp1, Ch_None)
void                  \2\xDE\xF9                      8086,FPU
fpureg                \1\xDE\10\xF8                   8086,FPU
fpureg,fpu0           \1\xDE\10\xF8                   8086,FPU

[FEMMS]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x0E                      PENT,3DNOW

[FENI]
(Ch_FPU, Ch_None, Ch_None)
void                  \3\x9B\xDB\xE0                  8086,FPU

[FFREE]
(Ch_FPU, Ch_None, Ch_None)
fpureg                \1\xDD\10\xC0                   8086,FPU

[FIADD,fiaddR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\200                      8086,FPU
mem32                 \1\xDA\200                      8086,FPU

[FICOM,ficomR]
(Ch_FPU, Ch_None, Ch_None)
mem16                 \1\xDE\202                      8086,FPU
mem32                 \1\xDA\202                      8086,FPU

[FICOMP,ficompR]
(Ch_FPU, Ch_None, Ch_None)
mem16                 \1\xDE\203                      8086,FPU
mem32                 \1\xDA\203                      8086,FPU

[FIDIV,fidivR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\206                      8086,FPU
mem32                 \1\xDA\206                      8086,FPU

[FIDIVR,fidivrR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\207                      8086,FPU
mem32                 \1\xDA\207                      8086,FPU

[FILD,fildR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem32                 \1\xDB\200                      8086,FPU
mem16                 \1\xDF\200                      8086,FPU
mem64                 \1\xDF\205                      8086,FPU

[FIMUL,fimulR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\201                      8086,FPU
mem32                 \1\xDA\201                      8086,FPU

[FINCSTP]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF7                      8086,FPU

[FINIT]
(Ch_FPU, Ch_None, Ch_None)
void                  \3\x9B\xDB\xE3                  8086,FPU

[FIST,fistR]
(Ch_Wop1, Ch_None, Ch_None)
mem32                 \1\xDB\202                      8086,FPU
mem16                 \324\1\xDF\202                  8086,FPU

[FISTP,fistpR]
(Ch_Wop1, Ch_None, Ch_None)
mem32                 \1\xDB\203                      8086,FPU
mem16                 \324\1\xDF\203                  8086,FPU
mem64                 \1\xDF\207                      8086,FPU

[FISTTP,fisttpR]
(Ch_Wop1, Ch_None, Ch_None)
mem32                 \1\xDB\201                      PRESCOTT,FPU
mem16                 \1\xDF\201                      PRESCOTT,FPU
mem64                 \1\xDD\201                      PRESCOTT,FPU

[FISUB,fisubR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\204                      8086,FPU
mem32                 \1\xDA\204                      8086,FPU

[FISUBR,fisubrR]
(Ch_FPU, Ch_ROp1, Ch_None)
mem16                 \1\xDE\205                      8086,FPU
mem32                 \1\xDA\205                      8086,FPU

[FLD,fldF]
(Ch_Rop1, Ch_FPU, Ch_None)
mem32                 \1\xD9\200                      8086,FPU
mem64                 \1\xDD\200                      8086,FPU
mem80                 \1\xDB\205                      8086,FPU
fpureg                \1\xD9\10\xC0                   8086,FPU

[FLD1]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE8                      8086,FPU

[FLDCW,fldcwX]
(Ch_FPU, Ch_None, Ch_None)
mem                   \1\xD9\205                      8086,FPU,SW

[FLDENV,fldenv]
(Ch_FPU, Ch_None, Ch_None)
mem                   \1\xD9\204                      8086,FPU

[FLDL2E]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xEA                      8086,FPU

[FLDL2T]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE9                      8086,FPU

[FLDLG2]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xEC                      8086,FPU

[FLDLN2]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xED                      8086,FPU

[FLDPI]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xEB                      8086,FPU

[FLDZ]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xEE                      8086,FPU

[FMUL,fmulF]
(Ch_ROp1, Ch_FPU, Ch_None)
mem32                 \1\xD8\201                      8086,FPU
mem64                 \1\xDC\201                      8086,FPU
void                  \2\xDC\xC9                      8086,FPU
fpureg|to             \1\xDC\10\xC8                   8086,FPU
fpureg,fpu0           \1\xDC\10\xC8                   8086,FPU
fpureg                \1\xD8\10\xC8                   8086,FPU
fpu0,fpureg           \1\xD8\11\xC8                   8086,FPU

[FMULP,fmulpF]
(Ch_ROp1, Ch_FPU, Ch_None)
void                  \2\xDE\xC9                      8086,FPU
fpureg                \1\xDE\10\xC8                   8086,FPU
fpureg,fpu0           \1\xDE\10\xC8                   8086,FPU

[FNCLEX]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDB\xE2                      8086,FPU

[FNDISI]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDB\xE1                      8086,FPU

[FNENI]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDB\xE0                      8086,FPU

[FNINIT]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDB\xE3                      8086,FPU

[FNOP]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xD0                      8086,FPU

[FNSAVE,fnsave]
(Ch_FPU, Ch_None, Ch_None)
mem                   \1\xDD\206                      8086,FPU

[FNSTCW,fnstcwX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \1\xD9\207                      8086,FPU,SW

[FNSTENV,fnstenv]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \1\xD9\206                      8086,FPU

[FNSTSW,fnstswX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \1\xDD\207                      8086,FPU,SW
reg_ax                \2\xDF\xE0                      286,FPU

[FPATAN]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF3                      8086,FPU

[FPREM]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF8                      8086,FPU

[FPREM1]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF5                      386,FPU

[FPTAN]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF2                      8086,FPU

[FRNDINT]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFC                      8086,FPU

[FRSTOR,frstor]
(Ch_FPU, Ch_None, Ch_None)
mem                   \1\xDD\204                      8086,FPU

[FSAVE,fsave]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x9B\xDD\206                  8086,FPU

[FSCALE]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFD                      8086,FPU

[FSETPM]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDB\xE4                      286,FPU

[FSIN]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFE                      386,FPU

[FSINCOS]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFB                      386,FPU

[FSQRT]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xFA                      8086,FPU

[FST,fstF]
(Ch_Wop1, Ch_None, Ch_None)
mem32                 \1\xD9\202                      8086,FPU
mem64                 \1\xDD\202                      8086,FPU
fpureg                \1\xDD\10\xD0                   8086,FPU

[FSTCW,fstcwX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x9B\xD9\207                  8086,FPU,SW

[FSTENV,fstenv]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x9B\xD9\206                  8086,FPU

[FSTP,fstpF]
(Ch_Wop1, Ch_FPU, Ch_None)
mem32                 \1\xD9\203                      8086,FPU
mem64                 \1\xDD\203                      8086,FPU
mem80                 \1\xDB\207                      8086,FPU
fpureg                \1\xDD\10\xD8                   8086,FPU

[FSTSW,fstswX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x9B\xDD\207                  8086,FPU,SW
void                  \3\x9B\xDF\xE0                  286,FPU
reg_ax                \3\x9B\xDF\xE0                  286,FPU

[FSUB,fsubF]
(Ch_ROp1, Ch_FPU, Ch_None)
mem32                 \1\xD8\204                      8086,FPU
mem64                 \1\xDC\204                      8086,FPU
void                  \2\xDC\xE1                      8086,FPU
fpureg|to             \1\xDC\10\xE0                   8086,FPU
fpureg,fpu0           \1\xDC\10\xE0                   8086,FPU
fpureg                \1\xD8\10\xE0                   8086,FPU
fpu0,fpureg           \1\xD8\11\xE0                   8086,FPU

[FSUBP,fsubpF]
(Ch_ROp1, Ch_FPU, Ch_None)
void                  \2\xDE\xE1                      8086,FPU
fpureg                \1\xDE\10\xE0                   8086,FPU
fpureg,fpu0           \1\xDE\10\xE0                   8086,FPU

[FSUBR,fsubrF]
(Ch_ROp1, Ch_FPU, Ch_None)
mem32                 \1\xD8\205                      8086,FPU
mem64                 \1\xDC\205                      8086,FPU
void                  \2\xDC\xE9                      8086,FPU
fpureg|to             \1\xDC\10\xE8                   8086,FPU
fpureg,fpu0           \1\xDC\10\xE8                   8086,FPU
fpureg                \1\xD8\10\xE8                   8086,FPU
fpu0,fpureg           \1\xD8\11\xE8                   8086,FPU

[FSUBRP,fsubrpF]
(Ch_ROp1, Ch_FPU, Ch_None)
void                  \2\xDE\xE9                      8086,FPU
fpureg                \1\xDE\10\xE8                   8086,FPU
fpureg,fpu0           \1\xDE\10\xE8                   8086,FPU

[FTST]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE4                      8086,FPU

[FUCOM,fucomF]
(Ch_None, Ch_None, Ch_None)
void                  \2\xDD\xE1                      386,FPU
fpureg                \1\xDD\10\xE0                   386,FPU
fpu0,fpureg           \1\xDD\11\xE0                   386,FPU

[FUCOMI,fucomiF]
(Ch_WFLAGS, Ch_None, Ch_None)
void                  \2\xDB\xE9                      P6,FPU
fpureg                \1\xDB\10\xE8                   P6,FPU
fpu0,fpureg           \1\xDB\11\xE8                   P6,FPU

[FUCOMIP,fucomipF]
(Ch_FPU, Ch_WFLAGS, Ch_None)
void                  \2\xDF\xE9                      P6,FPU
fpureg                \1\xDF\10\xE8                   P6,FPU
fpu0,fpureg           \1\xDF\11\xE8                   P6,FPU

[FUCOMP,fucompF]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDD\xE9                      386,FPU
fpureg                \1\xDD\10\xE8                   386,FPU
fpu0,fpureg           \1\xDD\11\xE8                   386,FPU

[FUCOMPP]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xDA\xE9                      386,FPU

[FWAIT]
(Ch_FPU, Ch_None, Ch_None)
void                  \1\x9B                          8086,FPU

[FXAM]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xE5                      8086,FPU

[FXCH,fxchF]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xC9                      8086,FPU
fpureg                \1\xD9\10\xC8                   8086,FPU
fpureg,fpu0           \1\xD9\10\xC8                   8086,FPU
fpu0,fpureg           \1\xD9\11\xC8                   8086,FPU

[FXTRACT]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF4                      8086,FPU

[FYL2X]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF1                      8086,FPU

[FYL2XP1]
(Ch_FPU, Ch_None, Ch_None)
void                  \2\xD9\xF9                      8086,FPU

[HLT]
(Ch_None, Ch_None, Ch_None)
void                  \1\xF4                          8086,PRIV

[IBTS,ibtsX]
(Ch_All, Ch_None, Ch_None)
regmem,reg16|32|64    \320\2\x0F\xA7\101              386,SM,UNDOC,ND

[ICEBP]
(Ch_All, Ch_None, Ch_None)
void                  \1\xF1                          386,ND

[IDIV,idivX]
(Ch_RWEAX, Ch_WEDX, Ch_WFlags)
rm16|32|64            \320\1\xF7\207                  8086
rm8                   \1\xF6\207                      8086

[IMUL,imulX]
(Ch_RWEAX, Ch_WEDX, Ch_WFlags)
reg16|32|64,regmem    \320\2\x0F\xAF\110              386,SM
rm16|32|64            \320\1\xF7\205                  8086
reg32|64,regmem,imm8  \320\1\x6B\110\16               286,SM
reg32|64,regmem,imm   \320\1\x69\110\42               286,SM,SD,AR2
reg32|64,imm8         \320\1\x6B\100\15               286
reg32,imm             \325\1\x69\100\41               286,SD
reg64,imm             \326\1\x69\100\255              X86_64
reg16,regmem,imm8     \324\1\x6B\110\16               286,SM
reg16,regmem,imm      \324\1\x69\110\32               286,SM,SW,AR2
reg16,imm8            \324\1\x6B\100\15               286
reg16,imm             \324\1\x69\100\31               286,SW
rm8                   \1\xF6\205                      8086

; 64-bit variant does not exist
[IN,inX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg_al,imm            \1\xE4\25                       8086,SB
reg_ax|32,imm         \320\1\xE5\25                   8086,SB
reg_al,reg_dx         \1\xEC                          8086
reg_ax|32,reg_dx      \320\1\xED                      8086

[INC,incX]
(Ch_Mop1, Ch_WFlags, Ch_None)
reg16|32              \320\10\x40                     8086,NOX86_64
rm16|32|64            \320\1\xFF\200                  8086
rm8                   \1\xFE\200                      8086

[INSB]
(Ch_WMemEDI, Ch_RWEDI, Ch_REDX)
void                  \1\x6C                          186

[INSD,insl]
(Ch_WMemEDI, Ch_RWEDI, Ch_REDX)
void                  \325\1\x6D                      386

[INSW]
(Ch_WMemEDI, Ch_RWEDI, Ch_REDX)
void                  \324\1\x6D                      186

[INT]
(Ch_All, Ch_None, Ch_None)
imm                   \1\xCD\24                       8086,SB

[INT01]
(Ch_All, Ch_None, Ch_None)
void                  \1\xF1                          386,ND

[INT1]
(Ch_All, Ch_None, Ch_None)
void                  \1\xF1                          386

[INT03]
(Ch_None, Ch_None, Ch_None)
void                  \1\xCC                          8086,ND

[INT3]
(Ch_None, Ch_None, Ch_None)
void                  \1\xCC                          8086

[INTO]
(Ch_All, Ch_None, Ch_None)
void                  \1\xCE                          8086,NOX86_64

[INVD]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x08                      486,PRIV

[INVLPG,invlpgX]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x01\207                  486,PRIV

[IRET]
(Ch_All, Ch_None, Ch_None)
void                  \327\1\xCF                      8086

[IRETD,iret]
(Ch_All, Ch_None, Ch_None)
void                  \325\1\xCF                      386

[IRETW]
(Ch_All, Ch_None, Ch_None)
void                  \324\1\xCF                      8086

[JCXZ]
(Ch_RECX, Ch_None, Ch_None)
imm                   \310\1\xE3\50                   8086,NOX86_64

[JECXZ]
(Ch_RECX, Ch_None, Ch_None)
imm                   \311\1\xE3\50                   386

[JRCXZ]
(Ch_RECX, Ch_None, Ch_None)
imm                   \1\xE3\50                       X86_64

[JMP,jmpX]
(Ch_ROp1, Ch_None, Ch_None)
imm8                  \1\xEB\50                       8086,PASS2
imm16|32              \320\1\xE9\64                   8086,PASS2
rm16|32|64            \320\1\xFF\204                  8086
imm|short             \1\xEB\50                       8086,PASS2
imm|near              \320\1\xE9\64                   8086,ND,PASS2
imm|far               \320\1\xEA\34\37                8086,ND,PASS2,NOX86_64
mem|near              \320\1\xFF\204                  8086
mem|far               \320\1\xFF\205                  8086
imm:imm               \327\1\xEA\35\30                8086,NOX86_64
imm:imm16             \324\1\xEA\31\30                8086,NOX86_64
imm:imm32             \325\1\xEA\41\30                386,NOX86_64

; SAHF/LAHF are valid in x86_64 only if CPUID.80000001h:ECX.0=1
[LAHF]
(Ch_WEAX, Ch_RFlags, Ch_None)
void                  \1\x9F                          8086

[LAR,larX]
(Ch_Wop2, Ch_None, Ch_None)
reg16|32|64,regmem    \320\2\x0F\x02\110              286,PROT,SM

[LCALL,lcall]
; don't know value of any register
(Ch_All, Ch_None, Ch_None)
rm16|32|64            \320\1\xFF\202                  8086
mem|near              \320\1\xFF\202                  8086
mem|far               \320\1\xFF\203                  8086

[LDS,ldsX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg16|32,mem          \320\1\xC5\110                  8086,NOX86_64

[LEA,leaX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,mem          \320\1\x8D\110                  8086
reg32|64,imm          \320\1\x8D\110                  8086,SD

[LEAVE]
(Ch_RWESP, Ch_WEBP, Ch_None)
void                  \1\xC9                          186

[LES,lesX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg16|32,mem          \320\1\xC4\110                  8086,NOX86_64

[LFS,lfsX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg16|32,mem          \320\2\x0F\xB4\110              386

[LGDT,lgdtX]
(Ch_None, Ch_None, Ch_None)
mem                   \2\x0F\x01\202                  286,PRIV

[LGS,lgsX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg16|32,mem          \320\2\x0F\xB5\110              386

[LIDT,lidtX]
(Ch_None, Ch_None, Ch_None)
mem                   \2\x0F\x01\203                  286,PRIV

[LJMP,ljmp]
(Ch_ROp1, Ch_None, Ch_None)
rm16|32|64            \320\1\xFF\205                  8086
mem|far               \320\1\xFF\205                  8086
mem|near              \320\1\xFF\204                  8086

[LLDT,lldtX]
(Ch_None, Ch_None, Ch_None)
rm16                  \2\x0F\x00\202                  286,PROT,PRIV

[LMSW,lmswX]
(Ch_None, Ch_None, Ch_None)
rm16                  \2\x0F\x01\206                  286,PRIV

[LOADALL]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x07                      386,UNDOC

[LOADALL286]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x05                      286,UNDOC

[LOCK]
(Ch_None, Ch_None, Ch_None)
void                  \1\xF0                          8086,PRE

[LODSB]
(Ch_WEAX, Ch_RWESI, Ch_None)
void                  \1\xAC                          8086

[LODSD,lodsl]
(Ch_WEAX, Ch_RWESI, Ch_None)
void                  \325\1\xAD                      386

[LODSW]
(Ch_WEAX, Ch_RWESI, Ch_None)
void                  \324\1\xAD                      8086

[LOOP]
(Ch_RWECX, Ch_None, Ch_None)
imm                   \312\1\xE2\50                   8086
imm,reg_cx            \310\1\xE2\50                   8086,NOX86_64
imm,reg_ecx|64        \311\1\xE2\50                   386

[LOOPE]
(Ch_RWECX, Ch_RFlags, Ch_None)
imm                   \312\1\xE1\50                   8086
imm,reg_cx            \310\1\xE1\50                   8086,NOX86_64
imm,reg_ecx|64        \311\1\xE1\50                   386

[LOOPNE]
(Ch_RWECX, Ch_RFlags, Ch_None)
imm                   \312\1\xE0\50                   8086
imm,reg_cx            \310\1\xE0\50                   8086,NOX86_64
imm,reg_ecx|64        \311\1\xE0\50                   386

[LOOPNZ]
(Ch_RWECX, Ch_RFlags, Ch_None)
imm                   \312\1\xE0\50                   8086
imm,reg_cx            \310\1\xE0\50                   8086,NOX86_64
imm,reg_ecx|64        \311\1\xE0\50                   386

[LOOPZ]
(Ch_RWECX, Ch_RFlags, Ch_None)
imm                   \312\1\xE1\50                   8086
imm,reg_cx            \310\1\xE1\50                   8086,NOX86_64
imm,reg_ecx|64        \311\1\xE1\50                   386

[LSL,lslX]
(Ch_Wop2, Ch_WFlags, Ch_None)
reg16|32|64,regmem    \320\2\x0F\x03\110              286,PROT,SM

[LSS,lssX]
(Ch_Wop2, Ch_ROP1, Ch_None)
reg16|32|64,mem       \320\2\x0F\xB2\110              386

[LTR,ltrX]
(Ch_None, Ch_None, Ch_None)
rm16                  \2\x0F\x00\203                  286,PROT,PRIV

[MONITOR]
(Ch_None, Ch_None, Ch_None)
void		      \3\x0F\x01\xC8		      PRESCOTT
reg_eax,reg_ecx,reg_edx      \3\x0F\x01\xC8           PRESCOTT,ND

[MOV,movX]
(Ch_Wop2, Ch_Rop1, Ch_None)
mem_offs,reg_ax       \324\1\xA3\44                   8086,SM
mem_offs,reg_eax      \325\1\xA3\44                   386,SM
mem_offs,reg_rax      \326\1\xA3\44                   X86_64,SM
regmem,reg16|32|64    \320\1\x89\101                  8086,SM
reg_ax,mem_offs       \324\1\xA1\45                   8086,SM
reg_eax,mem_offs      \325\1\xA1\45                   386,SM
reg_rax,mem_offs      \326\1\xA1\45                   X86_64,SM
reg16|32|64,regmem    \320\1\x8B\110                  8086,SM
reg32,imm             \325\10\xB8\41                  386,SD
reg64,imm             \326\10\xB8\55                  X86_64,SM
rm32,imm              \325\1\xC7\200\41               386,SM
rm64,imm              \326\1\xC7\200\255              X86_64,SM
reg16,imm             \324\10\xB8\31                  8086,SW
rm16,imm              \324\1\xC7\200\31               8086,SW
mem_offs,reg_al       \1\xA2\44                       8086,SM
rm8,reg8              \1\x88\101                      8086
reg_al,mem_offs       \1\xA0\45                       8086,SM
reg8,rm8              \1\x8A\110                      8086,SM
reg8,imm              \10\xB0\21                      8086,SB
rm8,imm               \1\xC6\200\21                   8086,SB
rm16|32,reg_cs        \320\1\x8C\201                  8086
rm16|32,reg_dess      \320\1\x8C\101                  8086
rm16|32,reg_fsgs      \320\1\x8C\101                  386
reg_dess,rm16|32      \321\1\x8E\110                  8086,SM
reg_fsgs,rm16|32      \321\1\x8E\110                  386,SM
reg32,reg_cr4         \2\x0F\x20\204                  PENT,PRIV,NOX86_64
reg32,reg_creg        \2\x0F\x20\101                  386,PRIV,NOX86_64
reg32,reg_dreg        \2\x0F\x21\101                  386,PRIV,NOX86_64
reg32,reg_treg        \2\x0F\x24\101                  386,PRIV,NOX86_64
reg64,reg_cr4         \2\x0F\x20\204                  PENT,PRIV,X86_64
reg64,reg_creg        \2\x0F\x20\101                  386,PRIV,X86_64
reg64,reg_dreg        \2\x0F\x21\101                  386,PRIV,X86_64
reg64,reg_treg        \2\x0F\x24\101                  386,PRIV,X86_64
reg_cr4,reg32         \2\x0F\x22\214                  PENT,PRIV,NOX86_64
reg_creg,reg32        \2\x0F\x22\110                  386,PRIV,NOX86_64
reg_dreg,reg32        \2\x0F\x23\110                  386,PRIV,NOX86_64
reg_treg,reg32        \2\x0F\x26\110                  386,PRIV,NOX86_64
reg_cr4,reg64         \2\x0F\x22\214                  PENT,PRIV,X86_64
reg_creg,reg64        \2\x0F\x22\110                  386,PRIV,X86_64
reg_dreg,reg64        \2\x0F\x23\110                  386,PRIV,X86_64
reg_treg,reg64        \2\x0F\x26\110                  386,PRIV,X86_64

[MOVD,movd]
(Ch_Rop1, Ch_Wop2, Ch_None)
mmxreg,rm32           \2\x0F\x6E\110                  PENT,MMX,SD
rm32,mmxreg           \2\x0F\x7E\101                  PENT,MMX,SD
xmmreg,rm32           \361\2\x0F\x6E\110              WILLAMETTE,SSE2
rm32,xmmreg           \361\2\x0F\x7E\101              WILLAMETTE,SSE2

[MOVQ,movq]
(Ch_Rop1, Ch_Wop2, Ch_None)
mmxreg,mmxrm          \2\x0F\x6F\110                  PENT,MMX,SM
mmxrm,mmxreg          \2\x0F\x7F\101                  PENT,MMX,SM
mmxreg,rm64           \326\2\x0F\x6E\110              X86_64,MMX
rm64,mmxreg           \326\2\x0F\x7E\101              X86_64,MMX
xmmreg,xmmrm          \333\2\x0F\x7E\110              WILLAMETTE,SSE2
xmmrm,xmmreg          \361\2\x0F\xD6\101              WILLAMETTE,SSE2
xmmreg,reg64          \361\326\2\x0F\x6E\110          WILLAMETTE,SSE2,X86_64
reg64,xmmreg          \361\326\2\x0F\x7E\101          WILLAMETTE,SSE2,X86_64

[MOVSB]
(Ch_All, Ch_None, Ch_None)
void                  \1\xA4                          8086

[MOVSD,movsl]
; Ch_All isn't correct for the sse move, but how can it be solved? (FK)
(Ch_All, Ch_None, Ch_None)
void                  \325\1\xA5                      386
xmmreg,xmmrm          \334\2\x0F\x10\110              WILLAMETTE,SSE2
xmmrm,xmmreg          \334\2\x0F\x11\101              WILLAMETTE,SSE2

[MOVSQ]
(Ch_All, Ch_None, Ch_None)
void                  \326\1\xA5                      X86_64

[MOVSW]
(Ch_All, Ch_None, Ch_None)
void                  \324\1\xA5                      8086

[MOVSX,movsY]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,rm16         \320\2\x0F\xBF\110              386
reg16|32|64,rm8       \320\2\x0F\xBE\110              386

[MOVZX,movzY]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,rm16         \320\2\x0F\xB7\110              386
reg16|32|64,rm8       \320\2\x0F\xB6\110              386

[MUL,mulX]
(Ch_RWEAX, Ch_WEDX, Ch_WFlags)
rm16|32|64            \320\1\xF7\204                  8086
rm8                   \1\xF6\204                      8086

[MWAIT]
(Ch_None, Ch_None, Ch_None)
void                  \3\x0F\x01\xC9                  PRESCOTT
reg_eax,reg_ecx       \3\x0F\x01\xC9                  PRESCOTT,ND


[NEG,negX]
(Ch_Mop1, Ch_None, Ch_None)
rm16|32|64            \320\1\xF7\203                  8086
rm8                   \1\xF6\203                      8086

[NOP]
(Ch_None, Ch_None, Ch_None)
void                  \1\x90                          8086

[NOT,notX]
(Ch_Mop1, Ch_WFlags, Ch_None)
rm16|32|64            \320\1\xF7\202                  8086
rm8                   \1\xF6\202                      8086

[OR,orX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\1\x09\101                  8086,SM
reg16|32|64,regmem    \320\1\x0B\110                  8086,SM
rm8,reg8              \1\x08\101                      8086
reg8,rm8              \1\x0A\110                      8086,SM
rm16|32|64,imm8       \320\1\x83\201\15               8086
reg_eax,imm           \325\1\x0D\41                   386,SM
reg_rax,imm           \326\1\x0D\255                  X86_64,SM
rm32,imm              \325\1\x81\201\41               386,SM
rm64,imm              \326\1\x81\201\255              X86_64,SM
reg_ax,imm            \324\1\x0D\31                   8086,SW
rm16,imm              \324\1\x81\201\31               8086,SW
reg_al,imm            \1\x0C\21                       8086,SB
rm8,imm               \1\x80\201\21                   8086,SB

[OUT,outX]
(Ch_Rop1, Ch_Rop2, Ch_None)
imm,reg_al            \1\xE6\24                       8086,SB
imm,reg_ax            \324\1\xE7\24                   8086,SB
imm,reg_eax           \325\1\xE7\24                   386,SB
reg_dx,reg_al         \1\xEE                          8086
reg_dx,reg_ax         \324\1\xEF                      8086
reg_dx,reg_eax        \325\1\xEF                      386

[OUTSB]
(Ch_All, Ch_None, Ch_None)
void                  \1\x6E                          186

[OUTSD,outsl]
(Ch_All, Ch_None, Ch_None)
void                  \325\1\x6F                      386

[OUTSW]
(Ch_All, Ch_None, Ch_None)
void                  \324\1\x6F                      186

[PACKSSDW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x6B\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x6B\110              WILLAMETTE,SSE2,SM

[PACKSSWB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x63\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x63\110              WILLAMETTE,SSE2,SM

[PACKUSWB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x67\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x67\110              WILLAMETTE,SSE2,SM

[PADDB]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\xFC\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xFC\110              WILLAMETTE,SSE2,SM

[PADDD]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\xFE\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xFE\110              WILLAMETTE,SSE2,SM

[PADDSB]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\xEC\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xEC\110              WILLAMETTE,SSE2,SM

[PADDSIW]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\x51\110                  PENT,MMX,SM,CYRIX

[PADDSW]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\xED\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xED\110              WILLAMETTE,SSE2,SM

[PADDUSB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDC\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDC\110              WILLAMETTE,SSE2,SM

[PADDUSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDD\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDD\110              WILLAMETTE,SSE2,SM

[PADDW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xFD\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xFD\110              WILLAMETTE,SSE2,SM

[PAND]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDB\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDB\110              WILLAMETTE,SSE2,SM

[PANDN]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDF\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDF\110              WILLAMETTE,SSE2,SM

[PAVEB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x50\110                  PENT,MMX,SM,CYRIX

[PAVGUSB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xBF           PENT,3DNOW,SM

[PCMPEQB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x74\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x74\110              WILLAMETTE,SSE2,SM

[PCMPEQD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x76\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x76\110              WILLAMETTE,SSE2,SM

[PCMPEQW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x75\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x75\110              WILLAMETTE,SSE2,SM

[PCMPGTB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x64\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x64\110              WILLAMETTE,SSE2,SM

[PCMPGTD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x66\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x66\110              WILLAMETTE,SSE2,SM

[PCMPGTW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x65\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x65\110              WILLAMETTE,SSE2,SM

[PDISTIB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x54\110                  PENT,MMX,SM,CYRIX

[PF2ID]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x1D           PENT,3DNOW,SM

[PFACC]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xAE           PENT,3DNOW,SM

[PFADD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x9E           PENT,3DNOW,SM

[PFCMPEQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xB0           PENT,3DNOW,SM

[PFCMPGE]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x90           PENT,3DNOW,SM

[PFCMPGT]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xA0           PENT,3DNOW,SM

[PFMAX]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xA4           PENT,3DNOW,SM

[PFMIN]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x94           PENT,3DNOW,SM

[PFMUL]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xB4           PENT,3DNOW,SM

[PFRCP]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x96           PENT,3DNOW,SM

[PFRCPIT1]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xA6           PENT,3DNOW,SM

[PFRCPIT2]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xB6           PENT,3DNOW,SM

[PFRSQIT1]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xA7           PENT,3DNOW,SM

[PFRSQRT]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x97           PENT,3DNOW,SM

[PFSUB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x9A           PENT,3DNOW,SM

[PFSUBR]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xAA           PENT,3DNOW,SM

[PI2FD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x0D           PENT,3DNOW,SM

[PMACHRIW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x5E\110                  PENT,MMX,SM,CYRIX

[PMADDWD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF5\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xF5\110              WILLAMETTE,SM,SSE2

[PMAGW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x52\110                  PENT,MMX,SM,CYRIX

[PMULHRIW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x5D\110                  PENT,MMX,SM,CYRIX

[PMULHRWA]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\1\xB7            PENT,3DNOW,SM

[PMULHRWC]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x59\110                  PENT,MMX,SM,CYRIX

[PMULHW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE5\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE5\110              WILLAMETTE,SSE2,SM

[PMULLW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD5\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xD5\110              WILLAMETTE,SSE2,SM

[PMVGEZB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x5C\110                  PENT,MMX,SM,CYRIX

[PMVLZB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x5B\110                  PENT,MMX,SM,CYRIX

[PMVNZB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x5A\110                  PENT,MMX,SM,CYRIX

[PMVZB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x58\110                  PENT,MMX,SM,CYRIX

[POP,popX]
(Ch_Wop1, Ch_RWESP, Ch_None)
reg16                 \324\10\x58                     8086
reg32                 \325\10\x58                     386,NOX86_64
reg64                 \335\10\x58                     X86_64
rm16                  \324\1\x8F\200                  8086
rm32                  \325\1\x8F\200                  386,NOX86_64
rm64                  \335\1\x8F\200                  X86_64
reg_cs                \1\x0F                          8086,UNDOC,ND
reg_dess              \4                              8086,NOX86_64
reg_fsgs              \1\x0F\5\335                    386

[POPA,popaX]
(Ch_All, Ch_None, Ch_None)
void                  \327\1\x61                      186,NOX86_64

[POPAD,popal]
(Ch_All, Ch_None, Ch_None)
void                  \325\1\x61                      386,NOX86_64

[POPAW]
(Ch_All, Ch_None, Ch_None)
void                  \324\1\x61                      186,NOX86_64

[POPF]
(Ch_RWESP, Ch_WFlags, Ch_None)
void                  \327\1\x9D                      186,NOX86_64
void                  \326\1\x9D                      X86_64

[POPFD,popfl]
(Ch_RWESP, Ch_WFlags, Ch_None)
void                  \325\1\x9D                      386,NOX86_64

[POPFW]
(Ch_RWESP, Ch_WFLAGS, Ch_None)
void                  \324\1\x9D                      186,NOX86_64
void                  \1\x9D                          X86_64

[POPFQ]
(Ch_RWESP, Ch_WFlags, Ch_None)
void                  \326\1\x9D                      X86_64

[POR]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xEB\110                  PENT,MMX,SM
xmmreg,xmmreg         \361\2\x0F\xEB\110              WILLAMETTE,SSE2,SM

[PREFETCH,prefetchX]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x0D\200                  PENT,3DNOW,SM

[PREFETCHW,prefetchwX]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x0D\201                  PENT,3DNOW,SM

[PSLLD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF2\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x72\206\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xF2\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x72\206\25           WILLAMETTE,SSE2,SB,AR1

[PSLLDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,imm            \361\2\x0F\x73\207\25           WILLAMETTE,SSE2,SB,AR1

[PSLLQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF3\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x73\206\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xF3\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x73\206\25           WILLAMETTE,SSE2,SB,AR1

[PSLLW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF1\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x71\206\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xF1\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x71\206\25           WILLAMETTE,SSE2,SB,AR1

[PSRAD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE2\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x72\204\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xE2\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x72\204\25           WILLAMETTE,SSE2,SB,AR1

[PSRAW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE1\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x71\204\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xE1\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x71\204\25           WILLAMETTE,SSE2,SB,AR1

[PSRLD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD2\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x72\202\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xD2\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x72\202\25           WILLAMETTE,SSE2,SB,AR1

[PSRLQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD3\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x73\202\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xD3\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x73\202\25           WILLAMETTE,SSE2,SB,AR1

[PSRLW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD1\110                  PENT,MMX,SM
mmxreg,imm            \2\x0F\x71\202\25               PENT,MMX,SB,AR1
xmmreg,xmmrm          \361\2\x0F\xD1\110              WILLAMETTE,SSE2,SM
xmmreg,imm            \361\2\x0F\x71\202\25           WILLAMETTE,SSE2,SB,AR1

[PSUBB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF8\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xF8\110              WILLAMETTE,SSE2,SM

[PSUBD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xFA\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xFA\110              WILLAMETTE,SSE2,SM

[PSUBSB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE8\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE8\110              WILLAMETTE,SSE2,SM

[PSUBSIW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mem            \2\x0F\x55\110                  PENT,MMX,SM,CYRIX
mmxreg,mmxreg         \2\x0F\x55\110                  PENT,MMX,CYRIX

[PSUBSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE9\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE9\110              WILLAMETTE,SSE2,SM

[PSUBUSB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD8\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xD8\110              WILLAMETTE,SSE2,SM

[PSUBUSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xD9\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xD9\110              WILLAMETTE,SSE2,SM

[PSUBW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF9\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xF9\110              WILLAMETTE,SSE2,SM

[PUNPCKHBW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x68\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x68\110              WILLAMETTE,SSE2,SM

[PUNPCKHDQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x6A\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x6A\110              WILLAMETTE,SSE2,SM

[PUNPCKHWD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x69\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x69\110              WILLAMETTE,SSE2,SM

[PUNPCKLBW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x60\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x60\110              WILLAMETTE,SSE2,SM

[PUNPCKLDQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x62\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x62\110              WILLAMETTE,SSE2,SM

[PUNPCKLWD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x61\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\x61\110              WILLAMETTE,SSE2,SM

[PUSH,pushX]
(Ch_Rop1, Ch_RWESP, Ch_None)
reg16                 \324\10\x50                     8086
reg32                 \325\10\x50                     386,NOX86_64
reg64                 \335\10\x50                     X86_64
rm16                  \324\1\xFF\206                  8086
rm32                  \325\1\xFF\206                  386,NOX86_64
rm64                  \335\1\xFF\206                  X86_64
imm32                 \325\1\x68\40\335               386
imm16                 \324\1\x68\30\335               286
imm8                  \1\x6A\14\335                   286
reg_fsgs              \1\x0F\7\335                    386,NOX86_64
reg_sreg              \6                              8086,NOX86_64

[PUSHA,pushaX]
(Ch_All, Ch_None, Ch_None)
void                  \327\1\x60                      186,NOX86_64

[PUSHAD,pushal]
(Ch_All, Ch_None, Ch_None)
void                  \325\1\x60                      386,NOX86_64

[PUSHAW]
(Ch_All, Ch_None, Ch_None)
void                  \324\1\x60                      186,NOX86_64

[PUSHF]
(Ch_RWESP, Ch_RFlags, Ch_None)
void                  \327\1\x9C                      186

[PUSHFD,pushfl]
(Ch_RWESP, Ch_RFlags, Ch_None)
void                  \325\1\x9C                      386,NOX86_64

[PUSHFW]
(Ch_RWESP, Ch_RFLAGS, Ch_None)
void                  \324\1\x9C                      186

[PUSHFQ]
(Ch_RWESP, Ch_RFlags, Ch_None)
void                  \326\1\x9C                      X86_64

[PXOR]
(Ch_Mop2, Ch_Rop1, Ch_None)
mmxreg,mmxrm          \2\x0F\xEF\110                  PENT,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xEF\110              WILLAMETTE,SSE2,SM

[RCL,rclX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
rm16|32|64,unity      \320\1\xD1\202                  8086
rm16|32|64,reg_cl     \320\1\xD3\202                  8086
rm16|32|64,imm        \320\1\xC1\202\25               8086,SB
rm8,unity             \1\xD0\202                      8086
rm8,reg_cl            \1\xD2\202                      8086
rm8,imm               \1\xC0\202\25                   186,SB

[RCR,rcrX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
rm16|32|64,unity      \320\1\xD1\203                  8086
rm16|32|64,reg_cl     \320\1\xD3\203                  8086
rm16|32|64,imm        \320\1\xC1\203\25               8086,SB
rm8,unity             \1\xD0\203                      8086
rm8,reg_cl            \1\xD2\203                      8086
rm8,imm               \1\xC0\203\25                   186,SB

[RDSHR]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x36                      P6,CYRIX,SMM

[RDMSR]
(Ch_WEAX, Ch_WEDX, Ch_None)
void                  \2\x0F\x32                      PENT,PRIV

[RDPMC]
(Ch_WEAX, Ch_WEDX, Ch_None)
void                  \2\x0F\x33                      P6

[RDTSC]
(Ch_WEAX, Ch_WEDX, Ch_None)
void                  \2\x0F\x31                      PENT

[REP]
(Ch_RWECX, Ch_RWFlags, Ch_None)
void                  \1\xF3                          8086,PRE

[REPE]
(Ch_RWECX, Ch_RWFlags, Ch_None)
void                  \1\xF3                          8086,PRE

[REPNE]
(Ch_RWECX, Ch_RWFlags, Ch_None)
void                  \1\xF2                          8086,PRE

[REPNZ]
(Ch_RWECX, Ch_RWFLAGS, Ch_None)
void                  \1\xF2                          8086,PRE

[REPZ]
(Ch_RWECX, Ch_RWFLAGS, Ch_None)
void                  \1\xF3                          8086,PRE

[RET]
(Ch_All, Ch_None, Ch_None)
void                  \1\xC3                          8086
imm                   \1\xC2\30                       8086,SW

[RETF,lret]
(Ch_All, Ch_None, Ch_None)
void                  \1\xCB                          8086
imm                   \1\xCA\30                       8086,SW

[RETN,ret]
(Ch_All, Ch_None, Ch_None)
void                  \1\xC3                          8086
imm                   \1\xC2\30                       8086,SW

[ROL,rolX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
rm16|32|64,unity      \320\1\xD1\200                  8086
rm16|32|64,reg_cl     \320\1\xD3\200                  8086
rm16|32|64,imm        \320\1\xC1\200\25               8086,SB
rm8,unity             \1\xD0\200                      8086
rm8,reg_cl            \1\xD2\200                      8086
rm8,imm               \1\xC0\200\25                   186,SB

[ROR,rorX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
rm16|32|64,unity      \320\1\xD1\201                  8086
rm16|32|64,reg_cl     \320\1\xD3\201                  8086
rm16|32|64,imm        \320\1\xC1\201\25               8086,SB
rm8,unity             \1\xD0\201                      8086
rm8,reg_cl            \1\xD2\201                      8086
rm8,imm               \1\xC0\201\25                   186,SB

[RSDC]
(Ch_All, Ch_None, Ch_None)
reg_sreg,mem80        \2\x0F\x79\101                  486,CYRIX,SMM

[RSLDT]
(Ch_All, Ch_None, Ch_None)
mem80                 \2\x0F\x7B\200                  486,CYRIX,SMM

[RSM]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\xAA                      PENT,SMM

; SAHF/LAHF are valid in x86_64 only if CPUID.80000001h:ECX.0=1
[SAHF]
(Ch_WFlags, Ch_REAX, Ch_None)
void                  \1\x9E                          8086

[SAL,salX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
rm16|32|64,unity      \320\1\xD1\204                  8086,ND
rm16|32|64,reg_cl     \320\1\xD3\204                  8086,ND
rm16|32|64,imm        \320\1\xC1\204\25               8086,ND,SB
rm8,unity             \1\xD0\204                      8086,ND
rm8,reg_cl            \1\xD2\204                      8086,ND
rm8,imm               \1\xC0\204\25                   186,ND,SB

[SALC]
(Ch_WEAX, Ch_RFLAGS, Ch_None)
void                  \1\xD6                          8086,UNDOC,NOX86_64

[SAR,sarX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
rm16|32|64,unity      \320\1\xD1\207                  8086
rm16|32|64,reg_cl     \320\1\xD3\207                  8086
rm16|32|64,imm        \320\1\xC1\207\25               8086,SB
rm8,unity             \1\xD0\207                      8086
rm8,reg_cl            \1\xD2\207                      8086
rm8,imm               \1\xC0\207\25                   186,SB

[SBB,sbbX]
(Ch_Mop2, Ch_Rop1, Ch_RWFlags)
regmem,reg16|32|64    \320\1\x19\101                  8086,SM
reg16|32|64,regmem    \320\1\x1B\110                  8086,SM
rm16|32|64,imm8       \320\1\x83\203\15               8086
rm8,reg8              \1\x18\101                      8086
reg8,rm8              \1\x1A\110                      8086,SM
reg_eax,imm           \325\1\x1D\41                   386,SM
reg_rax,imm           \326\1\x1D\255                  X86_64,SM
rm32,imm              \320\1\x81\203\41               386,SM
rm64,imm              \326\1\x81\203\255              X86_64,SM
reg_ax,imm            \324\1\x1D\31                   8086,SW
rm16,imm              \320\1\x81\203\31               8086,SW
reg_al,imm            \1\x1C\21                       8086,SB
rm8,imm               \1\x80\203\21                   8086,SB

[SCASB]
(Ch_All, Ch_None, Ch_None)
void                  \332\1\xAE                      8086

[SCASD,scasl]
(Ch_All, Ch_None, Ch_None)
void                  \332\325\1\xAF                  386

[SCASQ]
(Ch_All, Ch_None, Ch_None)
void                  \332\326\1\xAF                  X86_64

[SCASW]
(Ch_All, Ch_None, Ch_None)
void                  \332\324\1\xAF                  8086

[SEGCS,cs]
(Ch_None, Ch_None, Ch_None)
void                  \1\x2E                          8086,PRE

[SEGDS,ds]
(Ch_None, Ch_None, Ch_None)
void                  \1\x3E                          8086,PRE

[SEGES,es]
(Ch_None, Ch_None, Ch_None)
void                  \1\x26                          8086,PRE

[SEGFS,fs]
(Ch_None, Ch_None, Ch_None)
void                  \1\x64                          8086,PRE

[SEGGS,gs]
(Ch_None, Ch_None, Ch_None)
void                  \1\x65                          8086,PRE

[SEGSS,ss]
(Ch_None, Ch_None, Ch_None)
void                  \1\x36                          8086,PRE

[SGDT]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x0F\x01\200                  286

[SHL,shlX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
rm16|32|64,unity      \320\1\xD1\204                  8086
rm16|32|64,reg_cl     \320\1\xD3\204                  8086
rm16|32|64,imm        \320\1\xC1\204\25               186,SW
rm8,unity             \1\xD0\204                      8086
rm8,reg_cl            \1\xD2\204                      8086
rm8,imm               \1\xC0\204\25                   186,SB

[SHLD,shldX]
(Ch_MOp3, Ch_RWFlags, Ch_Rop2)
rm16|32|64,reg16|32|64,imm    \321\2\x0F\xA4\101\26       386,SM2,SB,AR2
rm16|32|64,reg16|32|64,reg_cl \321\2\x0F\xA5\101          386,SM

[SHR,shrX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
rm16|32|64,unity      \320\1\xD1\205                  8086
rm16|32|64,reg_cl     \320\1\xD3\205                  8086
rm16|32|64,imm        \320\1\xC1\205\25               186,SW
rm8,unity             \1\xD0\205                      8086
rm8,reg_cl            \1\xD2\205                      8086
rm8,imm               \1\xC0\205\25                   186,SB

[SHRD,shrdX]
(Ch_MOp3, Ch_RWFlags, Ch_Rop2)
rm16|32|64,reg16|32|64,imm    \321\2\x0F\xAC\101\26       386,SM2,SB,AR2
rm16|32|64,reg16|32|64,reg_cl \321\2\x0F\xAD\101          386,SM

[SIDT,sidtX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x0F\x01\201              286

[SLDT,sldtX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x0F\x00\200                  286
reg16|32|64           \320\2\x0F\x00\200              286

[SMI]
(Ch_All, Ch_None, Ch_None)
void                  \1\xF1                          386,UNDOC

[SMINT]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x38                      P6,CYRIX

[SMINTOLD]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x7E                      486,CYRIX,ND

[SMSW,smswX]
(Ch_Wop1, Ch_None, Ch_None)
rm16|32|64            \320\2\x0F\x01\204              286

[STC]
(Ch_WFlags, Ch_None, Ch_None)
void                  \1\xF9                          8086

[STD]
(Ch_SDirFlag, Ch_None, Ch_None)
void                  \1\xFD                          8086

[STI]
(Ch_WFlags, Ch_None, Ch_None)
void                  \1\xFB                          8086

[STOSB]
(Ch_REAX, Ch_WMemEDI, Ch_RWEDI)
void                  \1\xAA                          8086

[STOSD,stosl]
(Ch_REAX, Ch_WMemEDI, Ch_RWEDI)
void                  \325\1\xAB                      386

[STOSW]
(Ch_REAX, Ch_WMemEDI, Ch_RWEDI)
void                  \324\1\xAB                      8086

[STR,strX]
(Ch_Wop1, Ch_None, Ch_None)
mem                   \2\x0F\x00\201                  286,PROT
reg16|32|64           \320\2\x0F\x00\201              286,PROT

[SUB,subX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\1\x29\101                  8086,SM
reg16|32|64,regmem    \320\1\x2B\110                  8086,SM
rm8,reg8              \1\x28\101                      8086
reg8,rm8              \1\x2A\110                      8086,SM
rm16|32|64,imm8       \320\1\x83\205\15               8086
reg_eax,imm           \325\1\x2D\41                   386,SM
reg_rax,imm           \326\1\x2D\255                  X86_64,SM
rm32,imm              \320\1\x81\205\41               386,SM
rm64,imm              \326\1\x81\205\255              X86_64,SM
reg_ax,imm            \324\1\x2D\31                   8086,SW
rm16,imm              \324\1\x81\205\31               8086,SW
reg_al,imm            \1\x2C\21                       8086,SB
rm8,imm               \1\x80\205\21                   8086,SB

[SVDC,svdcX]
(Ch_All, Ch_None, Ch_None)
mem80,reg_sreg        \2\x0F\x78\101                  486,CYRIX,SMM

[SVLDT,svldtX]
(Ch_All, Ch_None, Ch_None)
mem80                 \2\x0F\x7A\200                  486,CYRIX,SMM

[SVTS,svtsX]
(Ch_All, Ch_None, Ch_None)
mem80                 \2\x0F\x7C\200                  486,CYRIX,SMM

[SYSCALL]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x05                      P6,AMD

[SYSENTER]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x34                      P6

[SYSEXIT]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x35                      P6,PRIV

[SYSRET]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x07                      P6,PRIV,AMD

[TEST,testX]
(Ch_WFlags, Ch_Rop1, Ch_Rop2)
regmem,reg16|32|64    \320\1\x85\101                  8086,SM
reg16|32|64,mem       \320\1\x85\110                  8086,SM
reg8,reg8             \1\x84\101                      8086
rm8,reg8              \1\x84\101                      8086,SM
reg_rax,imm           \326\1\xA9\255                  X86_64,SM
reg_eax,imm           \325\1\xA9\41                   386,SM
reg_ax,imm            \324\1\xA9\31                   8086,SM
reg_al,imm            \1\xA8\21                       8086,SM
rm64,imm              \326\1\xF7\200\255              X86_64,SM
rm32,imm              \325\1\xF7\200\41               386,SM
rm16,imm              \324\1\xF7\200\31               8086,SM
rm8,imm               \1\xF6\200\21                   8086,SM
mem,imm32             \325\1\xF7\200\41               386,SM
mem,imm16             \324\1\xF7\200\31               8086,SM
mem,imm8              \1\xF6\200\21                   8086,SM

[UD1]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\xB9                      286,UNDOC

[UD2]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x0B                      286

[UMOV,umovX]
(Ch_All, Ch_None, Ch_None)
regmem,reg16|32|64    \320\2\x0F\x11\101              386,UNDOC,SM
reg16|32|64,mem       \320\2\x0F\x13\110              386,UNDOC,SM
rm8,reg8              \2\x0F\x10\101                  386,UNDOC
reg8,rm8              \2\x0F\x12\110                  386,UNDOC

[VERR,verrX]
(Ch_WFlags, Ch_None, Ch_None)
mem                   \2\x0F\x00\204                  286,PROT
mem16                 \2\x0F\x00\204                  286,PROT
reg16                 \2\x0F\x00\204                  286,PROT

[VERW]
(Ch_WFlags, Ch_None, Ch_None)
mem                   \2\x0F\x00\205                  286,PROT
mem16                 \2\x0F\x00\205                  286,PROT
reg16                 \2\x0F\x00\205                  286,PROT

[WAIT]
(Ch_None, Ch_None, Ch_None)
void                  \1\x9B                          8086

[WBINVD]
(Ch_None, Ch_None, Ch_None)
void                  \2\x0F\x09                      486,PRIV

[WRSHR]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x37                      P6,CYRIX,SMM

[WRMSR]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x30                      PENT,PRIV

[XADD,xaddX]
(Ch_All, Ch_None, Ch_None)
mem,reg16|32|64       \320\2\x0F\xC1\101              486,SM
rm8,reg8              \2\x0F\xC0\101                  486

[XBTS,xbtsX]
(Ch_All, Ch_None, Ch_None)
reg16,mem             \324\2\x0F\xA6\110              386,SW,UNDOC,ND
reg16,reg16           \324\2\x0F\xA6\110              386,UNDOC,ND
reg32,mem             \325\2\x0F\xA6\110              386,SD,UNDOC,ND
reg32,reg32           \325\2\x0F\xA6\110              386,UNDOC,ND

[XCHG,xchgX]
(Ch_RWop1, Ch_RWop2, Ch_None)
reg_ax,reg16          \324\11\x90                     8086
reg_eax,reg32         \325\11\x90                     386
reg_rax,reg64         \326\11\x90                     X86_64
reg16,reg_ax          \324\10\x90                     8086
reg32,reg_eax         \325\10\x90                     386
reg64,reg_rax         \326\10\x90                     X86_64
reg16|32|64,regmem    \320\1\x87\110                  8086,SM
mem,reg16|32|64       \320\1\x87\101                  8086,SM
reg8,rm8              \1\x86\110                      8086
mem8,reg8             \1\x86\101                      8086

[XLAT]
(Ch_WEAX, Ch_REBX, Ch_None)
void                  \1\xD7                          8086

[XLATB]
(Ch_WEAX, Ch_REBX, Ch_None)
void                  \1\xD7                          8086

[XOR,xorX]
(Ch_Mop2, Ch_Rop1, Ch_WFlags)
regmem,reg16|32|64    \320\1\x31\101                  8086,SM
reg16|32|64,regmem    \320\1\x33\110                  8086,SM
rm8,reg8              \1\x30\101                      8086
reg8,rm8              \1\x32\110                      8086
rm16|32|64,imm8       \320\1\x83\206\15               8086
reg_eax,imm           \325\1\x35\41                   386,SM
reg_rax,imm           \326\1\x35\255                  X86_64,SM
rm32,imm              \320\1\x81\206\41               386,SM
rm64,imm              \326\1\x81\206\255              X86_64,SM
reg_ax,imm            \324\1\x35\31                   8086,SW
rm16,imm              \324\1\x81\206\31               8086,SW
reg_al,imm            \1\x34\21                       8086,SB
rm8,imm               \1\x80\206\21                   8086,SB

[XSTORE]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\xA7\xC0                  P6,CYRIX

[XCRYPTECB]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA7\xC8              P6,CYRIX

[XCRYPTCBC]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA7\xD0              P6,CYRIX

[XCRYPTCFB]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA7\xE0              P6,CYRIX

[XCRYPTOFB]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA7\xE8              P6,CYRIX

[CMOVcc,cmovCCX]
(Ch_ROp1, Ch_WOp2, Ch_RFLAGS)
reg16|32|64,regmem    \320\1\x0F\13\x40\110          P6,SM

[Jcc]
(Ch_RFLAGS, Ch_None, Ch_None)
imm8                  \13\x70\50                     8086
imm16|32              \320\1\x0F\13\x80\64           386,PASS2
imm|short             \13\x70\50                     8086
imm|near              \320\1\x0F\13\x80\64           386,PASS2

[SETcc,setCCX]
(Ch_RFLAGS, Ch_WOp1, Ch_None)
rm8                   \1\x0F\13\x90\200              386

;
; Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
;

[ADDPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x58\110              KATMAI,SSE

[ADDSS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x58\110              KATMAI,SSE

[ANDNPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \2\x0F\x55\110                  KATMAI,SSE

[ANDPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \2\x0F\x54\110                  KATMAI,SSE

[CMPEQPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x00        KATMAI,SSE

[CMPEQSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x00        KATMAI,SSE

[CMPLEPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x02        KATMAI,SSE

[CMPLESS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x02        KATMAI,SSE

[CMPLTPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x01        KATMAI,SSE

[CMPLTSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x01        KATMAI,SSE

[CMPNEQPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x04        KATMAI,SSE

[CMPNEQSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x04        KATMAI,SSE

[CMPNLEPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x06        KATMAI,SSE

[CMPNLESS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x06        KATMAI,SSE

[CMPNLTPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x05        KATMAI,SSE

[CMPNLTSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x05        KATMAI,SSE

[CMPORDPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x07        KATMAI,SSE

[CMPORDSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x07        KATMAI,SSE

[CMPUNORDPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\xC2\110\1\x03        KATMAI,SSE

[CMPUNORDSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\xC2\110\1\x03        KATMAI,SSE

;
; CMPPS/CMPSS must come after the specific ops; that way the disassembler will find the
; specific ops first and only disassemble illegal ones as cmpps.
;

[CMPPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \331\2\x0F\xC2\110\22           KATMAI,SSE,SB,AR2

[CMPSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \333\2\x0F\xC2\110\22           KATMAI,SSE,SB,AR2

[COMISS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \2\x0F\x2F\110                  KATMAI,SSE

[CVTPI2PS]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,mem            \331\2\x0F\x2A\110              KATMAI,SSE,MMX
xmmreg,mmxreg         \331\2\x0F\x2A\110             KATMAI,SSE,MMX

[CVTPS2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
mmxreg,mem            \331\2\x0F\x2D\110              KATMAI,SSE,MMX
mmxreg,xmmreg         \331\2\x0F\x2D\110              KATMAI,SSE,MMX

[CVTSI2SS,cvtsi2ssX]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,mem            \333\321\2\x0F\x2A\110      KATMAI,SSE
xmmreg,reg32|64       \333\321\2\x0F\x2A\110      KATMAI,SSE

[CVTSS2SI,cvtss2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,mem          \333\320\2\x0F\x2D\110          KATMAI,SSE
reg32|64,xmmreg       \333\320\2\x0F\x2D\110          KATMAI,SSE

[CVTTPS2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
mmxreg,mem            \331\2\x0F\x2C\110              KATMAI,SSE,MMX
mmxreg,xmmreg         \331\2\x0F\x2C\110              KATMAI,SSE,MMX

[CVTTSS2SI,cvttss2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,mem          \333\320\2\x0F\x2C\110          KATMAI,SSE
reg32|64,xmmreg       \333\320\2\x0F\x2C\110          KATMAI,SSE

[DIVPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x5E\110              KATMAI,SSE

[DIVSS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x5E\110              KATMAI,SSE

[LDMXCSR]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xAE\202                  KATMAI,SSE,SD

[MAXPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x5F\110              KATMAI,SSE

[MAXSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x5F\110              KATMAI,SSE

[MINPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x5D\110              KATMAI,SSE

[MINSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x5D\110              KATMAI,SSE

[MOVAPS]
(Ch_ROp1, Ch_WOp2, Ch_None)
xmmreg,xmmrm          \2\x0F\x28\110                  KATMAI,SSE
xmmrm,xmmreg          \2\x0F\x29\101                  KATMAI,SSE

[MOVHPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem            \2\x0F\x16\110                  KATMAI,SSE
mem,xmmreg            \2\x0F\x17\101                  KATMAI,SSE

[MOVLHPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg         \2\x0F\x16\110                  KATMAI,SSE

[MOVLPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem            \2\x0F\x12\110                  KATMAI,SSE
mem,xmmreg            \2\x0F\x13\101                  KATMAI,SSE

[MOVHLPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg         \2\x0F\x12\110                  KATMAI,SSE

[MOVMSKPS]
(Ch_All, Ch_None, Ch_None)
reg32,xmmreg          \2\x0F\x50\110                  KATMAI,SSE

[MOVNTPS]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg            \2\x0F\x2B\101                  KATMAI,SSE

[MOVSS]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x10\110              KATMAI,SSE
xmmrm,xmmreg          \333\2\x0F\x11\101              KATMAI,SSE

[MOVUPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x10\110              KATMAI,SSE
xmmrm,xmmreg          \331\2\x0F\x11\101              KATMAI,SSE

[MULPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \2\x0F\x59\110                  KATMAI,SSE

[MULSS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x59\110              KATMAI,SSE

[ORPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \2\x0F\x56\110                  KATMAI,SSE

[RCPPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x53\110              KATMAI,SSE

[RCPSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x53\110              KATMAI,SSE

[RSQRTPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x52\110              KATMAI,SSE

[RSQRTSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x52\110              KATMAI,SSE

[SHUFPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \2\x0F\xC6\110\22               KATMAI,SSE,SB,AR2

[SQRTPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x51\110              KATMAI,SSE

[SQRTSS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x51\110              KATMAI,SSE

[STMXCSR]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xAE\203                  KATMAI,SSE,SD

[SUBPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \331\2\x0F\x5C\110              KATMAI,SSE

[SUBSS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \333\2\x0F\x5C\110              KATMAI,SSE

[UCOMISS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \2\x0F\x2E\110                  KATMAI,SSE

[UNPCKHPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \2\x0F\x15\110                  KATMAI,SSE

[UNPCKLPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \2\x0F\x14\110                  KATMAI,SSE

[XORPS]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm          \2\x0F\x57\110                  KATMAI,SSE

;
; Introduced in Dechutes but necessary for SSE support
;

[FXRSTOR]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xAE\201                  P6,SSE,FPU

[FXSAVE]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xAE\200                  P6,SSE,FPU

;
; These instructions aren't SSE-specific; they are generic memory operations
; and work even if CR4.OSFXFR == 0
;

[PREFETCHNTA]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x18\200                      KATMAI

[PREFETCHT0]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x18\201                      KATMAI

[PREFETCHT1]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x18\202                      KATMAI

[PREFETCHT2]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\x18\203                      KATMAI

[SFENCE]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\xAE\xF8                  KATMAI

;
; New MMX instructions introduced in Katmai
;

[MASKMOVQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxreg         \2\x0F\xF7\110                  KATMAI,MMX

[MOVNTQ]
(Ch_All, Ch_None, Ch_None)
mem,mmxreg            \2\x0F\xE7\101                  KATMAI,MMX,SM

[PAVGB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE0\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE0\110              WILLAMETTE,SSE2,SM

[PAVGW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE3\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE3\110              WILLAMETTE,SSE2,SM

[PEXTRW]
(Ch_All, Ch_None, Ch_None)
reg32,mmxreg,imm      \2\x0F\xC5\110\22               KATMAI,MMX,SB,AR2
reg32,xmmreg,imm      \361\2\x0F\xC5\110\26           SSE41
mem32,xmmreg,imm      \361\3\x0F\x3A\x15\101\26       SSE41


[PINSRW]
(Ch_All, Ch_None, Ch_None)
; PINSRW is documented as using a reg32, but it's really using only 16 bit
; -- accept either, but be truthful in disassembly
mmxreg,reg16,imm      \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2
mmxreg,reg32,imm      \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2,ND
mmxreg,mem,imm        \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2
mmxreg,mem16,imm      \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2,ND
xmmreg,reg16,imm      \361\2\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2
xmmreg,reg32,imm      \361\2\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2,ND
xmmreg,mem,imm        \361\2\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2
xmmreg,mem16,imm      \361\2\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2,ND

[PMAXSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xEE\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xEE\110              WILLAMETTE,SSE2,SM

[PMAXUB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDE\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDE\110              WILLAMETTE,SSE2,SM

[PMINSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xEA\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xEA\110              WILLAMETTE,SSE2,SM

[PMINUB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xDA\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xDA\110              WILLAMETTE,SSE2,SM

[PMOVMSKB]
(Ch_All, Ch_None, Ch_None)
reg32,mmxreg          \2\x0F\xD7\110                  KATMAI,MMX
reg32,xmmreg          \361\2\x0F\xD7\110              WILLAMETTE,SSE2

[PMULHUW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xE4\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xE4\110              WILLAMETTE,SSE2,SM

[PSADBW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\xF6\110                  KATMAI,MMX,SM
xmmreg,xmmrm          \361\2\x0F\xF6\110              WILLAMETTE,SSE2,SM

[PSHUFW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm,imm      \2\x0F\x70\110\22               KATMAI,MMX,SM2,SB,AR2

;
; New Athlon Instructions
;

[PFNACC]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x8A           PENT,3DNOW,SM

[PFPNACC]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x8E           PENT,3DNOW,SM

[PI2FW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x0C           PENT,3DNOW,SM

[PF2IW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\x1C           PENT,3DNOW,SM

[PSWAPD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \2\x0F\x0F\110\01\xBB           PENT,3DNOW,SM

[FFREEP]
(Ch_All, Ch_None, Ch_None)
fpureg                \1\xDF\10\xC0                   PENT,3DNOW,FPU

; Willamette SSE2 Cacheability Instructions
[MASKMOVDQU]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg           \361\2\x0F\xF7\110            WILLAMETTE,SSE2

; CLFLUSH needs its own feature flag implemented one day
[CLFLUSH]
(Ch_All, Ch_None, Ch_None)
mem                     \2\x0F\xAE\207                WILLAMETTE,SSE2

[MOVNTDQ]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \361\2\x0F\xE7\101            WILLAMETTE,SSE2,SM

[MOVNTI,movntiX]
(Ch_All, Ch_None, Ch_None)
mem,reg32|64            \320\2\x0F\xC3\101            WILLAMETTE,SSE2,SM

[MOVNTPD]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \361\2\x0F\x2B\101            WILLAMETTE,SSE2,SM

[PAUSE]
(Ch_All, Ch_None, Ch_None)
void                    \333\1\x90                    WILLAMETTE,SSE2

[LFENCE]
(Ch_All, Ch_None, Ch_None)
void                    \3\x0F\xAE\xE8                WILLAMETTE,SSE2

[MFENCE]
(Ch_All, Ch_None, Ch_None)
void                    \3\x0F\xAE\xF0                WILLAMETTE,SSE2

;
; Willamette MMX instructions (SSE2 SIMD Integer Instructions)
;
[MOVDQA]
(Ch_All, Ch_None, Ch_None)
xmmrm,xmmreg            \361\2\x0F\x7F\101              WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\x6F\110              WILLAMETTE,SSE2,SM

[MOVDQU]
(Ch_All, Ch_None, Ch_None)
xmmrm,xmmreg            \333\2\x0F\x7F\101              WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \333\2\x0F\x6F\110              WILLAMETTE,SSE2,SM

[MOVDQ2Q]
(Ch_All, Ch_None, Ch_None)
mmxreg,xmmreg           \334\2\x0F\xD6\110              WILLAMETTE,SSE2

[MOVQ2DQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,mmxreg           \333\2\x0F\xD6\110              WILLAMETTE,SSE2

[PADDQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm            \2\x0F\xD4\110                  WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\xD4\110              WILLAMETTE,SSE2,SM

[PMULUDQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm            \2\x0F\xF4\110                  WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\xF4\110              WILLAMETTE,SSE2,SM

[PSHUFD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm        \361\2\x0F\x70\110\22           WILLAMETTE,SSE2,SM2,SB,AR2

[PSHUFHW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm        \333\2\x0F\x70\110\22           WILLAMETTE,SSE2,SM2,SB,AR2

[PSHUFLW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm        \334\2\x0F\x70\110\22           WILLAMETTE,SSE2,SM2,SB,AR2

[PSRLDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,imm              \361\2\x0F\x73\203\25           WILLAMETTE,SSE2,SB,AR1

[PSUBQ]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm            \2\x0F\xFB\110                  WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\xFB\110              WILLAMETTE,SSE2,SM

[PUNPCKHQDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x6D\110              WILLAMETTE,SSE2,SM

[PUNPCKLQDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x6C\110              WILLAMETTE,SSE2,SM

;
; Willamette Streaming SIMD instructions (SSE2)
;
[ADDPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x58\110              WILLAMETTE,SSE2,SM

[ADDSD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x58\110              WILLAMETTE,SSE2

[ANDNPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x55\110              WILLAMETTE,SSE2,SM

[ANDPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x54\110              WILLAMETTE,SSE2,SM

[CMPEQPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x00        WILLAMETTE,SSE2,SM

; note: no SM flag on CMPxxSD, they use 64-bit memory location, not 128-bit
[CMPEQSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x00        WILLAMETTE,SSE2

[CMPLEPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x02        WILLAMETTE,SSE2,SM

[CMPLESD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x02        WILLAMETTE,SSE2

[CMPLTPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x01        WILLAMETTE,SSE2,SM

[CMPLTSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x01        WILLAMETTE,SSE2

[CMPNEQPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x04        WILLAMETTE,SSE2,SM

[CMPNEQSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x04        WILLAMETTE,SSE2

[CMPNLEPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x06        WILLAMETTE,SSE2,SM

[CMPNLESD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x06        WILLAMETTE,SSE2

[CMPNLTPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x05        WILLAMETTE,SSE2,SM

[CMPNLTSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x05        WILLAMETTE,SSE2

[CMPORDPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x07        WILLAMETTE,SSE2,SM

[CMPORDSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x07        WILLAMETTE,SSE2

[CMPUNORDPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xC2\110\1\x03        WILLAMETTE,SSE2,SM

[CMPUNORDSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xC2\110\1\x03        WILLAMETTE,SSE2

; CMPPD/CMPSD must come after the specific ops; that way the disassembler will find the
; specific ops first and only disassemble illegal ones as cmppd/cmpsd.
[CMPPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm        \361\2\x0F\xC2\110\26           WILLAMETTE,SSE2,SM2,SB,AR2

[COMISD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x2F\110              WILLAMETTE,SSE2

[CVTDQ2PD]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \333\2\x0F\xE6\110              WILLAMETTE,SSE2

[CVTDQ2PS]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \2\x0F\x5B\110                  WILLAMETTE,SSE2,SM

[CVTPD2DQ]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xE6\110              WILLAMETTE,SSE2,SM

[CVTPD2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
mmxreg,xmmrm            \361\2\x0F\x2D\110              WILLAMETTE,SSE2 ;,SO

[CVTPD2PS]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5A\110              WILLAMETTE,SSE2,SM

[CVTPI2PD]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,mmxrm            \361\2\x0F\x2A\110              WILLAMETTE,SSE2 ;,SO

[CVTPS2DQ]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5B\110              WILLAMETTE,SSE2,SM

[CVTPS2PD]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \2\x0F\x5A\110                WILLAMETTE,SSE2 ;,SQ

[CVTSD2SI,cvtsd2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,xmmreg         \334\320\2\x0F\x2D\110        WILLAMETTE,SSE2
reg32|64,mem            \334\320\2\x0F\x2D\110        WILLAMETTE,SSE2

[CVTSD2SS]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x5A\110              WILLAMETTE,SSE2 ;,SQ

[CVTSI2SD,cvtsi2sdX]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,reg32|64         \334\321\2\x0F\x2A\110        WILLAMETTE,SSE2
xmmreg,mem              \334\321\2\x0F\x2A\110        WILLAMETTE,SSE2

[CVTSS2SD]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \333\2\x0F\x5A\110            WILLAMETTE,SSE2 ;,SD

[CVTTPD2PI]
(Ch_Wop2, Ch_Rop1, Ch_None)
mmxreg,xmmreg           \361\2\x0F\x2C\110              WILLAMETTE,SSE2
mmxreg,mem              \361\2\x0F\x2C\110              WILLAMETTE,SSE2

[CVTTPD2DQ]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xE6\110              WILLAMETTE,SSE2,SM

[CVTTPS2DQ]
(Ch_Wop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \333\2\x0F\x5B\110              WILLAMETTE,SSE2,SM

[CVTTSD2SI,cvttsd2siX]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg32|64,xmmreg         \334\320\2\x0F\x2C\110        WILLAMETTE,SSE2
reg32|64,mem            \334\320\2\x0F\x2C\110        WILLAMETTE,SSE2

[DIVPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5E\110            WILLAMETTE,SSE2,SM

[DIVSD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x5E\110          WILLAMETTE,SSE2

[MAXPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5F\110          WILLAMETTE,SSE2,SM

[MAXSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x5F\110          WILLAMETTE,SSE2

[MINPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5D\110          WILLAMETTE,SSE2,SM

[MINSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x5D\110          WILLAMETTE,SSE2

[MOVAPD]
(Ch_ROp1, Ch_WOp2, Ch_None)
xmmrm,xmmreg            \361\2\x0F\x29\101        WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\x28\110        WILLAMETTE,SSE2,SM

[MOVHPD]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \361\2\x0F\x17\101        WILLAMETTE,SSE2
xmmreg,mem              \361\2\x0F\x16\110        WILLAMETTE,SSE2

[MOVLPD]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \361\2\x0F\x13\101        WILLAMETTE,SSE2
xmmreg,mem              \361\2\x0F\x12\110        WILLAMETTE,SSE2

[MOVMSKPD]
(Ch_All, Ch_None, Ch_None)
reg32,xmmreg            \361\2\x0F\x50\110        WILLAMETTE,SSE2

[MOVUPD]
(Ch_All, Ch_None, Ch_None)
xmmrm,xmmreg            \361\2\x0F\x11\101        WILLAMETTE,SSE2,SM
xmmreg,xmmrm            \361\2\x0F\x10\110        WILLAMETTE,SSE2,SM

[MULPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x59\110        WILLAMETTE,SSE2,SM

[MULSD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x59\110        WILLAMETTE,SSE2

[ORPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x56\110        WILLAMETTE,SSE2,SM

[SHUFPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm        \361\2\x0F\xC6\110\26     WILLAMETTE,SSE2,SM2,SB,AR2

[SQRTPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x51\110        WILLAMETTE,SSE2,SM

[SQRTSD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x51\110        WILLAMETTE,SSE2


[SUBPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x5C\110        WILLAMETTE,SSE2,SM

[SUBSD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x5C\110        WILLAMETTE,SSE2

[UCOMISD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x2E\110        WILLAMETTE,SSE2

[UNPCKHPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x15\110        WILLAMETTE,SSE2,SM

[UNPCKLPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x14\110        WILLAMETTE,SSE2,SM

[XORPD]
(Ch_Mop2, Ch_Rop1, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x57\110        WILLAMETTE,SSE2,SM

;
; Prescott New Instructions (SSE3)
;
[ADDSUBPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\xD0\110        PRESCOTT,SSE3,SM

[ADDSUBPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\xD0\110        PRESCOTT,SSE3,SM

[HADDPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x7C\110        PRESCOTT,SSE3,SM

[HADDPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x7C\110        PRESCOTT,SSE3,SM

[HSUBPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \361\2\x0F\x7D\110        PRESCOTT,SSE3,SM

[HSUBPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x7D\110        PRESCOTT,SSE3,SM

[LDDQU]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem              \334\2\x0F\xF0\110        PRESCOTT,SSE3

[MOVDDUP]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \334\2\x0F\x12\110        PRESCOTT,SSE3

[MOVSHDUP]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \333\2\x0F\x16\110        PRESCOTT,SSE3,SM

[MOVSLDUP]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm            \333\2\x0F\x12\110        PRESCOTT,SSE3,SM

;
; Intel VT
;
[VMREAD]
(Ch_All, Ch_None, Ch_None)
reg32,reg32           \2\x0F\x78\101              386,PRIV,PROT
mem,reg32             \2\x0F\x78\101              386,PRIV,PROT,SM

[VMWRITE]
(Ch_All, Ch_None, Ch_None)
reg32,reg32           \2\x0F\x79\110              386,PRIV,PROT
reg32,mem             \2\x0F\x79\110              386,PRIV,PROT,SM

[VMCALL]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xC1                  386,PRIV,PROT

[VMLAUNCH]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xC2                  386,PRIV,PROT

[VMRESUME]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xC3                  386,PRIV,PROT

[VMXOFF]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xC4                  386,PRIV,PROT

; note: ideally the following should be tagged with SQ

[VMXON]
(Ch_All, Ch_None, Ch_None)
mem                   \333\2\x0F\xC7\206              PRIV,PROT

[VMCLEAR]
(Ch_All, Ch_None, Ch_None)
mem                   \361\2\x0F\xC7\206              PRIV,PROT

[VMPTRLD]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xC7\206                  PRIV,PROT

[VMPTRST]
(Ch_All, Ch_None, Ch_None)
mem                   \2\x0F\xC7\207                  PRIV,PROT

;
; AMD SVM
;
[VMRUN]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xD8                  386,SVM,PRIV,PROT

[VMMCALL]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xD9                  386,SVM

[VMLOAD]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDA                  386,SVM,PRIV,PROT

[VMSAVE]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDB                  386,SVM,PRIV,PROT

[STGI]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDC                  386,SVM,PRIV,PROT

[CLGI]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDD                  386,SVM,PRIV,PROT

[SKINIT]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDE                  386,SVM,PRIV,PROT

[INVLPGA]
(Ch_All, Ch_None, Ch_None)
void                  \3\x0F\x01\xDF                  386,SVM,PRIV,PROT

;
; Centaur
;
[MONTMUL]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA6\xC0              CENTAUR

[XSHA1]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA6\xC8              CENTAUR

[XSHA256]
(Ch_All, Ch_None, Ch_None)
void                  \333\3\x0F\xA6\xD0              CENTAUR

;
; Geode
;
[DMINT]
(Ch_All, Ch_None, Ch_None)
void \2\x0F\x39                                       P6,CYRIX

[RDM]
(Ch_All, Ch_None, Ch_None)
void                  \2\x0F\x3A                      P6,CYRIX

;
; GAS specific x86-64 instructions
;
[MOVABS]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg_al,mem_offs       \1\xA0\45                       X86_64,SM
reg_ax|32|64,mem_offs \320\1\xA1\45                   X86_64,SM
mem_offs,reg_al       \1\xA2\44                       X86_64,SM
mem_offs,reg_ax|32|64 \321\xA3\44                     X86_64,SM
reg64,imm             \326\10\xB8\55                  X86_64

[MOVSXD,movslq]
(Ch_Wop2, Ch_Rop1, Ch_None)
reg64,mem             \326\1\x63\110                  X86_64
reg64,reg32           \326\1\x63\110                  X86_64

[CQO,cqto]
(Ch_MRAX, Ch_WRDX, Ch_None)
void                  \326\1\x99                      X86_64

[CMPXCHG16B,cmpxchg16bX]
(Ch_All, Ch_None, Ch_None)
mem                   \326\2\x0F\xC7\201              X86_64

;
; SSE4a (AMD Barcelona CPUs, n/a on Intel)
;
[MOVNTSS]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \333\2\x0F\x2B\101                        SSE4,SD

[MOVNTSD]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg              \334\325\2\x0F\x2B\101                SSE4 ;,SQ

[INSERTQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmreg           \334\2\x0F\x79\110                        SSE4
; four operands are not possible yet
; xmmreg,xmmreg,imm,imm   \334\2\x0F\x78\110\26\27          SSE4,SB

[EXTRQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,imm,imm          \361\2\x0F\x78\200\25\26                  SSE4,SB
xmmreg,xmmreg           \361\2\x0F\x79\110                        SSE4

[LZCNT,lzcntX]
(Ch_All, Ch_None, Ch_None)
reg16,regmem            \320\333\2\x0F\xBD\110                386,SM,SSE4
reg32|64,regmem         \321\333\2\x0F\xBD\110                386,SM,SSE4

;*******************************************************************************
;**********SSSE3****************************************************************
;*******************************************************************************
[PABSB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x1C\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x1C\110                   SSSE3,SM

[PABSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x1D\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x1D\110                   SSSE3,SM

[PABSD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x1E\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x1E\110                   SSSE3,SM

[PALIGNR]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm,imm      \331\3\x0F\x3A\x0F\110\26                SSSE3,MMX,SM2,SB,AR2
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x0F\110\26                SSSE3,SM2,SB,AR2

[PHADDW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x01\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x01\110                   SSSE3,SM

[PHADDD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x02\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x02\110                   SSSE3,SM

[PHADDSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x03\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x03\110                   SSSE3,SM

[PHSUBW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x05\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x05\110                   SSSE3,SM

[PHSUBD]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x06\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x06\110                   SSSE3,SM

[PHSUBSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x07\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x07\110                   SSSE3,SM

[PMADDUBSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x04\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x04\110                   SSSE3,SM

[PMULHRSW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x0B\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x0B\110                   SSSE3,SM

[PSHUFB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x00\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x00\110                   SSSE3,SM

[PSIGNB]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x08\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x08\110                   SSSE3,SM

[PSIGNW]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x09\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x09\110                   SSSE3,SM

[PSIGND]
(Ch_All, Ch_None, Ch_None)
mmxreg,mmxrm          \331\3\x0F\x38\x0A\110                   SSSE3,MMX,SM
xmmreg,xmmrm          \361\3\x0F\x38\x0A\110                   SSSE3,SM

;*******************************************************************************
;**********SSE4.1***************************************************************
;*******************************************************************************
[BLENDPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x0C\110\26                SSE41,SM2,SB,AR2

[BLENDPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x0D\110\26                SSE41,SM2,SB,AR2

[BLENDVPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x14\110                   SSE41,SM

[BLENDVPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x15\110                   SSE41,SM

[DPPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x40\110\26                SSE41,SM2,SB,AR2

[DPPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x41\110\26                SSE41,SM2,SB,AR2

[EXTRACTPS]
(Ch_All, Ch_None, Ch_None)
mem,xmmreg,imm       \361\325\3\x0F\x3A\x17\101\26    SSE41,SB,AR2
reg32|64,xmmreg,imm  \361\3\x0F\x3A\x17\101\26    SSE41,SB,AR2

[INSERTPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm     \361\3\x0F\x3A\x21\110\26            SSE41,SM2,SB,AR2

[MOVNTDQA]
(Ch_All, Ch_None, Ch_None)
xmmreg,mem           \361\3\x0F\x38\x2A\110               SSE41,SM

[MPSADBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm     \361\3\x0F\x3A\x42\110\26            SSE41,SM2,SB,AR2

[PACKUSDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm         \361\3\x0F\x38\x2B\110               SSE41,SM

[PBLENDVB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm         \361\3\x0F\x38\x10\110               SSE41,SM

[PBLENDW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm     \361\3\x0F\x3A\x0E\110\26            SSE41,SM2,SB,AR2

[PCMPEQQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm         \361\3\x0F\x38\x29\110               SSE41,SM

[PEXTRB]
(Ch_All, Ch_None, Ch_None)
reg32|64,xmmreg,imm   \361\3\x0F\x3A\x14\101\26                SSE41,SB,AR2
mem8,xmmreg,imm       \361\3\x0F\x3A\x14\101\26            SSE41,SB,AR2

;PEXTRW - Look is prev. implementation

[PEXTRD]
(Ch_All, Ch_None, Ch_None)
reg32,xmmreg,imm      \361\3\x0F\x3A\x16\101\26            SSE41,SB,AR2
mem32,xmmreg,imm      \361\3\x0F\x3A\x16\101\26            SSE41,SB,AR2

[PEXTRQ]
(Ch_All, Ch_None, Ch_None)
reg64,xmmreg,imm      \361\326\3\x0F\x3A\x16\101\26        SSE41,X86_64,SB,AR2
mem64,xmmreg,imm      \361\326\3\x0F\x3A\x16\101\26        SSE41,X86_64,SB,AR2

[PHMINPOSUW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x41\110               SSE41,SM

[PINSRB]
(Ch_All, Ch_None, Ch_None)
xmmreg,reg32|64,imm   \361\3\x0F\x3A\x20\110\26            SSE41,SB,AR2
xmmreg,mem8,imm       \361\3\x0F\x3A\x20\110\26            SSE41,SB,AR2

[PINSRD]
(Ch_All, Ch_None, Ch_None)
xmmreg,reg32,imm      \361\3\x0F\x3A\x22\110\26            SSE41,SB,AR2
xmmreg,mem32,imm      \361\3\x0F\x3A\x22\110\26            SSE41,SB,AR2

[PINSRQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,reg64,imm      \361\326\3\x0F\x3A\x22\110\26        SSE41,X86_64,SB,AR2
xmmreg,mem64,imm      \361\326\3\x0F\x3A\x22\110\26        SSE41,X86_64,SB,AR2

[PMAXSB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3C\110               SSE41,SM

[PMAXSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3D\110               SSE41,SM

[PMAXUD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3F\110               SSE41,SM

[PMAXUW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3E\110               SSE41,SM

[PMINSB]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x38\110               SSE41,SM

[PMINSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x39\110               SSE41,SM

[PMINUW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3A\110               SSE41,SM

[PMINUD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x3B\110               SSE41,SM

[PMOVSXBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x20\110               SSE41,SM

[PMOVSXBD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x21\110               SSE41,SM

[PMOVSXBQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x22\110               SSE41,SM

[PMOVSXWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x23\110               SSE41,SM

[PMOVSXWQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x24\110               SSE41,SM

[PMOVSXDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x25\110               SSE41,SM

[PMOVZXBW]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x30\110               SSE41,SM

[PMOVZXBD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x31\110               SSE41,SM

[PMOVZXBQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x32\110               SSE41,SM

[PMOVZXWD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x33\110               SSE41,SM

[PMOVZXWQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x34\110               SSE41,SM

[PMOVZXDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x35\110               SSE41,SM

[PMULDQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x28\110               SSE41,SM

[PMULLD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x40\110               SSE41,SM

[PTEST]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\x17\110               SSE41,SM

[ROUNDPS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x08\110\26            SSE41,SM2,SB,AR2

[ROUNDPD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x09\110\26            SSE41,SM2,SB,AR2

[ROUNDSS]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x0A\110\26            SSE41,SM2,SB,AR2

[ROUNDSD]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\x0B\110\26            SSE41,SM2,SB,AR2

;*******************************************************************************
;**********SSE4.2***************************************************************
;*******************************************************************************

[CRC32,crc32X]
(Ch_Mop1, Ch_Rop2, Ch_None)
reg32,rm8              \334\3\x0F\x38\xF0\110                  SSE42
reg32,rm16|32          \321\334\3\x0F\x38\xF1\110              SSE42
reg64,rm8              \334\326\3\x0F\x38\xF0\110              SSE42,X86_64
reg64,rm64             \334\326\3\x0F\x38\xF1\110              SSE42,X86_64

[PCMPESTRI]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm       \361\3\x0F\x3A\x61\110\26               SSE42,SM2,SB,AR2

[PCMPESTRM]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm       \361\3\x0F\x3A\x60\110\26               SSE42,SM2,SB,AR2

[PCMPISTRI]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm       \361\3\x0F\x3A\x63\110\26               SSE42,SM2,SB,AR2

[PCMPISTRM]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm       \361\3\x0F\x3A\x62\110\26               SSE42,SM2,SB,AR2

[PCMPGTQ]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm           \361\3\x0F\x38\x37\110                  SSE42,SM

[POPCNT,popcntX]
(Ch_All, Ch_None, Ch_None)
reg16,rm16             \333\320\2\x0F\xB8\110              386,SM,SSE4
reg32,rm32             \333\320\2\x0F\xB8\110              386,SM,SSE4
reg64,rm64             \333\320\2\x0F\xB8\110              386,SM,SSE4,X86_64

;*******************************************************************************
;**********AES******************************************************************
;*******************************************************************************
;Use SSE4, but need special flag for AES insructions set

[AESENC]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\xDC\110               SSE4,SM

[AESENCLAST]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\xDD\110               SSE4,SM

[AESDEC]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\xDE\110               SSE4,SM

[AESDECLAST]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\xDF\110               SSE4,SM

[AESIMC]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm          \361\3\x0F\x38\xDB\110               SSE4,SM

[AESKEYGENASSIST]
(Ch_All, Ch_None, Ch_None)
xmmreg,xmmrm,imm      \361\3\x0F\x3A\xDF\110\26            SSE4,SB,AR2

;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
[STOSQ]
(Ch_RRAX, Ch_WMemEDI, Ch_RWRDI)
void                   \326\1\xAB                                    X86_64

[LODSQ]
(Ch_WRAX, Ch_RWRSI, Ch_None)
void                   \326\1\xAD                                    X86_64

[CMPSQ]
(Ch_All, Ch_None, Ch_None)
void                   \326\1\xA7                                    X86_64
