blob: 533a85e3a07e7dfc4abc73fb68aed9fd74094d95 [file] [log] [blame]
Masami Hiramatsueb132962009-08-13 16:34:13 -04001# x86 Opcode Maps
2#
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09003# This is (mostly) based on following documentations.
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +09004# - Intel(R) 64 and IA-32 Architectures Software Developer's Manual Vol.2C
5# (#326018-047US, June 2013)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09006#
Masami Hiramatsueb132962009-08-13 16:34:13 -04007#<Opcode maps>
8# Table: table-name
9# Referrer: escaped-name
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040010# AVXcode: avx-code
Masami Hiramatsueb132962009-08-13 16:34:13 -040011# opcode: mnemonic|GrpXXX [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
12# (or)
13# opcode: escape # escaped-name
14# EndTable
15#
16#<group maps>
17# GrpTable: GrpXXX
18# reg: mnemonic [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
19# EndTable
20#
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040021# AVX Superscripts
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090022# (v): this opcode requires VEX prefix.
23# (v1): this opcode only supports 128bit VEX.
24#
25# Last Prefix Superscripts
26# - (66): the last prefix is 0x66
27# - (F3): the last prefix is 0xF3
28# - (F2): the last prefix is 0xF2
Masami Hiramatsu436d03f2012-06-05 00:09:11 +090029# - (!F3) : the last prefix is not 0xF3 (including non-last prefix case)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +090030# - (66&F2): Both 0x66 and 0xF2 prefixes are specified.
Masami Hiramatsueb132962009-08-13 16:34:13 -040031
32Table: one byte opcode
33Referrer:
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040034AVXcode:
Masami Hiramatsueb132962009-08-13 16:34:13 -040035# 0x00 - 0x0f
3600: ADD Eb,Gb
3701: ADD Ev,Gv
3802: ADD Gb,Eb
3903: ADD Gv,Ev
4004: ADD AL,Ib
4105: ADD rAX,Iz
4206: PUSH ES (i64)
4307: POP ES (i64)
4408: OR Eb,Gb
4509: OR Ev,Gv
460a: OR Gb,Eb
470b: OR Gv,Ev
480c: OR AL,Ib
490d: OR rAX,Iz
500e: PUSH CS (i64)
510f: escape # 2-byte escape
52# 0x10 - 0x1f
5310: ADC Eb,Gb
5411: ADC Ev,Gv
5512: ADC Gb,Eb
5613: ADC Gv,Ev
5714: ADC AL,Ib
5815: ADC rAX,Iz
5916: PUSH SS (i64)
6017: POP SS (i64)
6118: SBB Eb,Gb
6219: SBB Ev,Gv
631a: SBB Gb,Eb
641b: SBB Gv,Ev
651c: SBB AL,Ib
661d: SBB rAX,Iz
671e: PUSH DS (i64)
681f: POP DS (i64)
69# 0x20 - 0x2f
7020: AND Eb,Gb
7121: AND Ev,Gv
7222: AND Gb,Eb
7323: AND Gv,Ev
7424: AND AL,Ib
7525: AND rAx,Iz
7626: SEG=ES (Prefix)
7727: DAA (i64)
7828: SUB Eb,Gb
7929: SUB Ev,Gv
802a: SUB Gb,Eb
812b: SUB Gv,Ev
822c: SUB AL,Ib
832d: SUB rAX,Iz
842e: SEG=CS (Prefix)
852f: DAS (i64)
86# 0x30 - 0x3f
8730: XOR Eb,Gb
8831: XOR Ev,Gv
8932: XOR Gb,Eb
9033: XOR Gv,Ev
9134: XOR AL,Ib
9235: XOR rAX,Iz
9336: SEG=SS (Prefix)
9437: AAA (i64)
9538: CMP Eb,Gb
9639: CMP Ev,Gv
973a: CMP Gb,Eb
983b: CMP Gv,Ev
993c: CMP AL,Ib
1003d: CMP rAX,Iz
1013e: SEG=DS (Prefix)
1023f: AAS (i64)
103# 0x40 - 0x4f
10440: INC eAX (i64) | REX (o64)
10541: INC eCX (i64) | REX.B (o64)
10642: INC eDX (i64) | REX.X (o64)
10743: INC eBX (i64) | REX.XB (o64)
10844: INC eSP (i64) | REX.R (o64)
10945: INC eBP (i64) | REX.RB (o64)
11046: INC eSI (i64) | REX.RX (o64)
11147: INC eDI (i64) | REX.RXB (o64)
11248: DEC eAX (i64) | REX.W (o64)
11349: DEC eCX (i64) | REX.WB (o64)
1144a: DEC eDX (i64) | REX.WX (o64)
1154b: DEC eBX (i64) | REX.WXB (o64)
1164c: DEC eSP (i64) | REX.WR (o64)
1174d: DEC eBP (i64) | REX.WRB (o64)
1184e: DEC eSI (i64) | REX.WRX (o64)
1194f: DEC eDI (i64) | REX.WRXB (o64)
120# 0x50 - 0x5f
12150: PUSH rAX/r8 (d64)
12251: PUSH rCX/r9 (d64)
12352: PUSH rDX/r10 (d64)
12453: PUSH rBX/r11 (d64)
12554: PUSH rSP/r12 (d64)
12655: PUSH rBP/r13 (d64)
12756: PUSH rSI/r14 (d64)
12857: PUSH rDI/r15 (d64)
12958: POP rAX/r8 (d64)
13059: POP rCX/r9 (d64)
1315a: POP rDX/r10 (d64)
1325b: POP rBX/r11 (d64)
1335c: POP rSP/r12 (d64)
1345d: POP rBP/r13 (d64)
1355e: POP rSI/r14 (d64)
1365f: POP rDI/r15 (d64)
137# 0x60 - 0x6f
13860: PUSHA/PUSHAD (i64)
13961: POPA/POPAD (i64)
14062: BOUND Gv,Ma (i64)
14163: ARPL Ew,Gw (i64) | MOVSXD Gv,Ev (o64)
14264: SEG=FS (Prefix)
14365: SEG=GS (Prefix)
14466: Operand-Size (Prefix)
14567: Address-Size (Prefix)
14668: PUSH Iz (d64)
14769: IMUL Gv,Ev,Iz
1486a: PUSH Ib (d64)
1496b: IMUL Gv,Ev,Ib
1506c: INS/INSB Yb,DX
1516d: INS/INSW/INSD Yz,DX
1526e: OUTS/OUTSB DX,Xb
1536f: OUTS/OUTSW/OUTSD DX,Xz
154# 0x70 - 0x7f
15570: JO Jb
15671: JNO Jb
15772: JB/JNAE/JC Jb
15873: JNB/JAE/JNC Jb
15974: JZ/JE Jb
16075: JNZ/JNE Jb
16176: JBE/JNA Jb
16277: JNBE/JA Jb
16378: JS Jb
16479: JNS Jb
1657a: JP/JPE Jb
1667b: JNP/JPO Jb
1677c: JL/JNGE Jb
1687d: JNL/JGE Jb
1697e: JLE/JNG Jb
1707f: JNLE/JG Jb
171# 0x80 - 0x8f
17280: Grp1 Eb,Ib (1A)
17381: Grp1 Ev,Iz (1A)
17482: Grp1 Eb,Ib (1A),(i64)
17583: Grp1 Ev,Ib (1A)
17684: TEST Eb,Gb
17785: TEST Ev,Gv
17886: XCHG Eb,Gb
17987: XCHG Ev,Gv
18088: MOV Eb,Gb
18189: MOV Ev,Gv
1828a: MOV Gb,Eb
1838b: MOV Gv,Ev
1848c: MOV Ev,Sw
1858d: LEA Gv,M
1868e: MOV Sw,Ew
1878f: Grp1A (1A) | POP Ev (d64)
188# 0x90 - 0x9f
18990: NOP | PAUSE (F3) | XCHG r8,rAX
19091: XCHG rCX/r9,rAX
19192: XCHG rDX/r10,rAX
19293: XCHG rBX/r11,rAX
19394: XCHG rSP/r12,rAX
19495: XCHG rBP/r13,rAX
19596: XCHG rSI/r14,rAX
19697: XCHG rDI/r15,rAX
19798: CBW/CWDE/CDQE
19899: CWD/CDQ/CQO
1999a: CALLF Ap (i64)
2009b: FWAIT/WAIT
2019c: PUSHF/D/Q Fv (d64)
2029d: POPF/D/Q Fv (d64)
2039e: SAHF
2049f: LAHF
205# 0xa0 - 0xaf
206a0: MOV AL,Ob
207a1: MOV rAX,Ov
208a2: MOV Ob,AL
209a3: MOV Ov,rAX
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900210a4: MOVS/B Yb,Xb
211a5: MOVS/W/D/Q Yv,Xv
Masami Hiramatsueb132962009-08-13 16:34:13 -0400212a6: CMPS/B Xb,Yb
213a7: CMPS/W/D Xv,Yv
214a8: TEST AL,Ib
215a9: TEST rAX,Iz
216aa: STOS/B Yb,AL
217ab: STOS/W/D/Q Yv,rAX
218ac: LODS/B AL,Xb
219ad: LODS/W/D/Q rAX,Xv
220ae: SCAS/B AL,Yb
Ulrich Drepper8d973b62012-01-15 19:40:24 -0500221# Note: The May 2011 Intel manual shows Xv for the second parameter of the
222# next instruction but Yv is correct
223af: SCAS/W/D/Q rAX,Yv
Masami Hiramatsueb132962009-08-13 16:34:13 -0400224# 0xb0 - 0xbf
225b0: MOV AL/R8L,Ib
226b1: MOV CL/R9L,Ib
227b2: MOV DL/R10L,Ib
228b3: MOV BL/R11L,Ib
229b4: MOV AH/R12L,Ib
230b5: MOV CH/R13L,Ib
231b6: MOV DH/R14L,Ib
232b7: MOV BH/R15L,Ib
233b8: MOV rAX/r8,Iv
234b9: MOV rCX/r9,Iv
235ba: MOV rDX/r10,Iv
236bb: MOV rBX/r11,Iv
237bc: MOV rSP/r12,Iv
238bd: MOV rBP/r13,Iv
239be: MOV rSI/r14,Iv
240bf: MOV rDI/r15,Iv
241# 0xc0 - 0xcf
242c0: Grp2 Eb,Ib (1A)
243c1: Grp2 Ev,Ib (1A)
244c2: RETN Iw (f64)
245c3: RETN
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900246c4: LES Gz,Mp (i64) | VEX+2byte (Prefix)
247c5: LDS Gz,Mp (i64) | VEX+1byte (Prefix)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900248c6: Grp11A Eb,Ib (1A)
249c7: Grp11B Ev,Iz (1A)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400250c8: ENTER Iw,Ib
251c9: LEAVE (d64)
252ca: RETF Iw
253cb: RETF
254cc: INT3
255cd: INT Ib
256ce: INTO (i64)
257cf: IRET/D/Q
258# 0xd0 - 0xdf
259d0: Grp2 Eb,1 (1A)
260d1: Grp2 Ev,1 (1A)
261d2: Grp2 Eb,CL (1A)
262d3: Grp2 Ev,CL (1A)
263d4: AAM Ib (i64)
264d5: AAD Ib (i64)
265d6:
266d7: XLAT/XLATB
267d8: ESC
268d9: ESC
269da: ESC
270db: ESC
271dc: ESC
272dd: ESC
273de: ESC
274df: ESC
275# 0xe0 - 0xef
276e0: LOOPNE/LOOPNZ Jb (f64)
277e1: LOOPE/LOOPZ Jb (f64)
278e2: LOOP Jb (f64)
279e3: JrCXZ Jb (f64)
280e4: IN AL,Ib
281e5: IN eAX,Ib
282e6: OUT Ib,AL
283e7: OUT Ib,eAX
284e8: CALL Jz (f64)
285e9: JMP-near Jz (f64)
286ea: JMP-far Ap (i64)
287eb: JMP-short Jb (f64)
288ec: IN AL,DX
289ed: IN eAX,DX
290ee: OUT DX,AL
291ef: OUT DX,eAX
292# 0xf0 - 0xff
293f0: LOCK (Prefix)
294f1:
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900295f2: REPNE (Prefix) | XACQUIRE (Prefix)
296f3: REP/REPE (Prefix) | XRELEASE (Prefix)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400297f4: HLT
298f5: CMC
299f6: Grp3_1 Eb (1A)
300f7: Grp3_2 Ev (1A)
301f8: CLC
302f9: STC
303fa: CLI
304fb: STI
305fc: CLD
306fd: STD
307fe: Grp4 (1A)
308ff: Grp5 (1A)
309EndTable
310
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400311Table: 2-byte opcode (0x0f)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400312Referrer: 2-byte escape
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400313AVXcode: 1
Masami Hiramatsueb132962009-08-13 16:34:13 -0400314# 0x0f 0x00-0x0f
31500: Grp6 (1A)
31601: Grp7 (1A)
31702: LAR Gv,Ew
31803: LSL Gv,Ew
31904:
32005: SYSCALL (o64)
32106: CLTS
32207: SYSRET (o64)
32308: INVD
32409: WBINVD
3250a:
3260b: UD2 (1B)
3270c:
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900328# AMD's prefetch group. Intel supports prefetchw(/1) only.
3290d: GrpP
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -04003300e: FEMMS
331# 3DNow! uses the last imm byte as opcode extension.
3320f: 3DNow! Pq,Qq,Ib
Masami Hiramatsueb132962009-08-13 16:34:13 -0400333# 0x0f 0x10-0x1f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900334# NOTE: According to Intel SDM opcode map, vmovups and vmovupd has no operands
335# but it actually has operands. And also, vmovss and vmovsd only accept 128bit.
336# MOVSS/MOVSD has too many forms(3) on SDM. This map just shows a typical form.
337# Many AVX instructions lack v1 superscript, according to Intel AVX-Prgramming
338# Reference A.1
33910: vmovups Vps,Wps | vmovupd Vpd,Wpd (66) | vmovss Vx,Hx,Wss (F3),(v1) | vmovsd Vx,Hx,Wsd (F2),(v1)
34011: vmovups Wps,Vps | vmovupd Wpd,Vpd (66) | vmovss Wss,Hx,Vss (F3),(v1) | vmovsd Wsd,Hx,Vsd (F2),(v1)
34112: vmovlps Vq,Hq,Mq (v1) | vmovhlps Vq,Hq,Uq (v1) | vmovlpd Vq,Hq,Mq (66),(v1) | vmovsldup Vx,Wx (F3) | vmovddup Vx,Wx (F2)
34213: vmovlps Mq,Vq (v1) | vmovlpd Mq,Vq (66),(v1)
34314: vunpcklps Vx,Hx,Wx | vunpcklpd Vx,Hx,Wx (66)
34415: vunpckhps Vx,Hx,Wx | vunpckhpd Vx,Hx,Wx (66)
34516: vmovhps Vdq,Hq,Mq (v1) | vmovlhps Vdq,Hq,Uq (v1) | vmovhpd Vdq,Hq,Mq (66),(v1) | vmovshdup Vx,Wx (F3)
34617: vmovhps Mq,Vq (v1) | vmovhpd Mq,Vq (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -040034718: Grp16 (1A)
34819:
3491a:
3501b:
3511c:
3521d:
3531e:
3541f: NOP Ev
355# 0x0f 0x20-0x2f
35620: MOV Rd,Cd
35721: MOV Rd,Dd
35822: MOV Cd,Rd
35923: MOV Dd,Rd
36024:
36125:
36226:
36327:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090036428: vmovaps Vps,Wps | vmovapd Vpd,Wpd (66)
36529: vmovaps Wps,Vps | vmovapd Wpd,Vpd (66)
3662a: cvtpi2ps Vps,Qpi | cvtpi2pd Vpd,Qpi (66) | vcvtsi2ss Vss,Hss,Ey (F3),(v1) | vcvtsi2sd Vsd,Hsd,Ey (F2),(v1)
3672b: vmovntps Mps,Vps | vmovntpd Mpd,Vpd (66)
3682c: cvttps2pi Ppi,Wps | cvttpd2pi Ppi,Wpd (66) | vcvttss2si Gy,Wss (F3),(v1) | vcvttsd2si Gy,Wsd (F2),(v1)
3692d: cvtps2pi Ppi,Wps | cvtpd2pi Qpi,Wpd (66) | vcvtss2si Gy,Wss (F3),(v1) | vcvtsd2si Gy,Wsd (F2),(v1)
3702e: vucomiss Vss,Wss (v1) | vucomisd Vsd,Wsd (66),(v1)
3712f: vcomiss Vss,Wss (v1) | vcomisd Vsd,Wsd (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400372# 0x0f 0x30-0x3f
37330: WRMSR
37431: RDTSC
37532: RDMSR
37633: RDPMC
37734: SYSENTER
37835: SYSEXIT
37936:
38037: GETSEC
38138: escape # 3-byte escape 1
38239:
3833a: escape # 3-byte escape 2
3843b:
3853c:
3863d:
3873e:
3883f:
389# 0x0f 0x40-0x4f
39040: CMOVO Gv,Ev
39141: CMOVNO Gv,Ev
39242: CMOVB/C/NAE Gv,Ev
39343: CMOVAE/NB/NC Gv,Ev
39444: CMOVE/Z Gv,Ev
39545: CMOVNE/NZ Gv,Ev
39646: CMOVBE/NA Gv,Ev
39747: CMOVA/NBE Gv,Ev
39848: CMOVS Gv,Ev
39949: CMOVNS Gv,Ev
4004a: CMOVP/PE Gv,Ev
4014b: CMOVNP/PO Gv,Ev
4024c: CMOVL/NGE Gv,Ev
4034d: CMOVNL/GE Gv,Ev
4044e: CMOVLE/NG Gv,Ev
4054f: CMOVNLE/G Gv,Ev
406# 0x0f 0x50-0x5f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090040750: vmovmskps Gy,Ups | vmovmskpd Gy,Upd (66)
40851: vsqrtps Vps,Wps | vsqrtpd Vpd,Wpd (66) | vsqrtss Vss,Hss,Wss (F3),(v1) | vsqrtsd Vsd,Hsd,Wsd (F2),(v1)
40952: vrsqrtps Vps,Wps | vrsqrtss Vss,Hss,Wss (F3),(v1)
41053: vrcpps Vps,Wps | vrcpss Vss,Hss,Wss (F3),(v1)
41154: vandps Vps,Hps,Wps | vandpd Vpd,Hpd,Wpd (66)
41255: vandnps Vps,Hps,Wps | vandnpd Vpd,Hpd,Wpd (66)
41356: vorps Vps,Hps,Wps | vorpd Vpd,Hpd,Wpd (66)
41457: vxorps Vps,Hps,Wps | vxorpd Vpd,Hpd,Wpd (66)
41558: vaddps Vps,Hps,Wps | vaddpd Vpd,Hpd,Wpd (66) | vaddss Vss,Hss,Wss (F3),(v1) | vaddsd Vsd,Hsd,Wsd (F2),(v1)
41659: vmulps Vps,Hps,Wps | vmulpd Vpd,Hpd,Wpd (66) | vmulss Vss,Hss,Wss (F3),(v1) | vmulsd Vsd,Hsd,Wsd (F2),(v1)
4175a: vcvtps2pd Vpd,Wps | vcvtpd2ps Vps,Wpd (66) | vcvtss2sd Vsd,Hx,Wss (F3),(v1) | vcvtsd2ss Vss,Hx,Wsd (F2),(v1)
4185b: vcvtdq2ps Vps,Wdq | vcvtps2dq Vdq,Wps (66) | vcvttps2dq Vdq,Wps (F3)
4195c: vsubps Vps,Hps,Wps | vsubpd Vpd,Hpd,Wpd (66) | vsubss Vss,Hss,Wss (F3),(v1) | vsubsd Vsd,Hsd,Wsd (F2),(v1)
4205d: vminps Vps,Hps,Wps | vminpd Vpd,Hpd,Wpd (66) | vminss Vss,Hss,Wss (F3),(v1) | vminsd Vsd,Hsd,Wsd (F2),(v1)
4215e: vdivps Vps,Hps,Wps | vdivpd Vpd,Hpd,Wpd (66) | vdivss Vss,Hss,Wss (F3),(v1) | vdivsd Vsd,Hsd,Wsd (F2),(v1)
4225f: vmaxps Vps,Hps,Wps | vmaxpd Vpd,Hpd,Wpd (66) | vmaxss Vss,Hss,Wss (F3),(v1) | vmaxsd Vsd,Hsd,Wsd (F2),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400423# 0x0f 0x60-0x6f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090042460: punpcklbw Pq,Qd | vpunpcklbw Vx,Hx,Wx (66),(v1)
42561: punpcklwd Pq,Qd | vpunpcklwd Vx,Hx,Wx (66),(v1)
42662: punpckldq Pq,Qd | vpunpckldq Vx,Hx,Wx (66),(v1)
42763: packsswb Pq,Qq | vpacksswb Vx,Hx,Wx (66),(v1)
42864: pcmpgtb Pq,Qq | vpcmpgtb Vx,Hx,Wx (66),(v1)
42965: pcmpgtw Pq,Qq | vpcmpgtw Vx,Hx,Wx (66),(v1)
43066: pcmpgtd Pq,Qq | vpcmpgtd Vx,Hx,Wx (66),(v1)
43167: packuswb Pq,Qq | vpackuswb Vx,Hx,Wx (66),(v1)
43268: punpckhbw Pq,Qd | vpunpckhbw Vx,Hx,Wx (66),(v1)
43369: punpckhwd Pq,Qd | vpunpckhwd Vx,Hx,Wx (66),(v1)
4346a: punpckhdq Pq,Qd | vpunpckhdq Vx,Hx,Wx (66),(v1)
4356b: packssdw Pq,Qd | vpackssdw Vx,Hx,Wx (66),(v1)
4366c: vpunpcklqdq Vx,Hx,Wx (66),(v1)
4376d: vpunpckhqdq Vx,Hx,Wx (66),(v1)
4386e: movd/q Pd,Ey | vmovd/q Vy,Ey (66),(v1)
4396f: movq Pq,Qq | vmovdqa Vx,Wx (66) | vmovdqu Vx,Wx (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400440# 0x0f 0x70-0x7f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090044170: pshufw Pq,Qq,Ib | vpshufd Vx,Wx,Ib (66),(v1) | vpshufhw Vx,Wx,Ib (F3),(v1) | vpshuflw Vx,Wx,Ib (F2),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -040044271: Grp12 (1A)
44372: Grp13 (1A)
44473: Grp14 (1A)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090044574: pcmpeqb Pq,Qq | vpcmpeqb Vx,Hx,Wx (66),(v1)
44675: pcmpeqw Pq,Qq | vpcmpeqw Vx,Hx,Wx (66),(v1)
44776: pcmpeqd Pq,Qq | vpcmpeqd Vx,Hx,Wx (66),(v1)
448# Note: Remove (v), because vzeroall and vzeroupper becomes emms without VEX.
44977: emms | vzeroupper | vzeroall
45078: VMREAD Ey,Gy
45179: VMWRITE Gy,Ey
Masami Hiramatsueb132962009-08-13 16:34:13 -04004527a:
4537b:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09004547c: vhaddpd Vpd,Hpd,Wpd (66) | vhaddps Vps,Hps,Wps (F2)
4557d: vhsubpd Vpd,Hpd,Wpd (66) | vhsubps Vps,Hps,Wps (F2)
4567e: movd/q Ey,Pd | vmovd/q Ey,Vy (66),(v1) | vmovq Vq,Wq (F3),(v1)
4577f: movq Qq,Pq | vmovdqa Wx,Vx (66) | vmovdqu Wx,Vx (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400458# 0x0f 0x80-0x8f
45980: JO Jz (f64)
46081: JNO Jz (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090046182: JB/JC/JNAE Jz (f64)
46283: JAE/JNB/JNC Jz (f64)
46384: JE/JZ Jz (f64)
46485: JNE/JNZ Jz (f64)
Masami Hiramatsueb132962009-08-13 16:34:13 -040046586: JBE/JNA Jz (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090046687: JA/JNBE Jz (f64)
Masami Hiramatsueb132962009-08-13 16:34:13 -040046788: JS Jz (f64)
46889: JNS Jz (f64)
4698a: JP/JPE Jz (f64)
4708b: JNP/JPO Jz (f64)
4718c: JL/JNGE Jz (f64)
4728d: JNL/JGE Jz (f64)
4738e: JLE/JNG Jz (f64)
4748f: JNLE/JG Jz (f64)
475# 0x0f 0x90-0x9f
47690: SETO Eb
47791: SETNO Eb
47892: SETB/C/NAE Eb
47993: SETAE/NB/NC Eb
48094: SETE/Z Eb
48195: SETNE/NZ Eb
48296: SETBE/NA Eb
48397: SETA/NBE Eb
48498: SETS Eb
48599: SETNS Eb
4869a: SETP/PE Eb
4879b: SETNP/PO Eb
4889c: SETL/NGE Eb
4899d: SETNL/GE Eb
4909e: SETLE/NG Eb
4919f: SETNLE/G Eb
492# 0x0f 0xa0-0xaf
493a0: PUSH FS (d64)
494a1: POP FS (d64)
495a2: CPUID
496a3: BT Ev,Gv
497a4: SHLD Ev,Gv,Ib
498a5: SHLD Ev,Gv,CL
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700499a6: GrpPDLK
Masami Hiramatsueb132962009-08-13 16:34:13 -0400500a7: GrpRNG
501a8: PUSH GS (d64)
502a9: POP GS (d64)
503aa: RSM
504ab: BTS Ev,Gv
505ac: SHRD Ev,Gv,Ib
506ad: SHRD Ev,Gv,CL
507ae: Grp15 (1A),(1C)
508af: IMUL Gv,Ev
509# 0x0f 0xb0-0xbf
510b0: CMPXCHG Eb,Gb
511b1: CMPXCHG Ev,Gv
512b2: LSS Gv,Mp
513b3: BTR Ev,Gv
514b4: LFS Gv,Mp
515b5: LGS Gv,Mp
516b6: MOVZX Gv,Eb
517b7: MOVZX Gv,Ew
Masami Hiramatsu436d03f2012-06-05 00:09:11 +0900518b8: JMPE (!F3) | POPCNT Gv,Ev (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400519b9: Grp10 (1A)
520ba: Grp8 Ev,Ib (1A)
521bb: BTC Ev,Gv
Masami Hiramatsu436d03f2012-06-05 00:09:11 +0900522bc: BSF Gv,Ev (!F3) | TZCNT Gv,Ev (F3)
523bd: BSR Gv,Ev (!F3) | LZCNT Gv,Ev (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400524be: MOVSX Gv,Eb
525bf: MOVSX Gv,Ew
526# 0x0f 0xc0-0xcf
527c0: XADD Eb,Gb
528c1: XADD Ev,Gv
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900529c2: vcmpps Vps,Hps,Wps,Ib | vcmppd Vpd,Hpd,Wpd,Ib (66) | vcmpss Vss,Hss,Wss,Ib (F3),(v1) | vcmpsd Vsd,Hsd,Wsd,Ib (F2),(v1)
530c3: movnti My,Gy
531c4: pinsrw Pq,Ry/Mw,Ib | vpinsrw Vdq,Hdq,Ry/Mw,Ib (66),(v1)
532c5: pextrw Gd,Nq,Ib | vpextrw Gd,Udq,Ib (66),(v1)
533c6: vshufps Vps,Hps,Wps,Ib | vshufpd Vpd,Hpd,Wpd,Ib (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400534c7: Grp9 (1A)
535c8: BSWAP RAX/EAX/R8/R8D
536c9: BSWAP RCX/ECX/R9/R9D
537ca: BSWAP RDX/EDX/R10/R10D
538cb: BSWAP RBX/EBX/R11/R11D
539cc: BSWAP RSP/ESP/R12/R12D
540cd: BSWAP RBP/EBP/R13/R13D
541ce: BSWAP RSI/ESI/R14/R14D
542cf: BSWAP RDI/EDI/R15/R15D
543# 0x0f 0xd0-0xdf
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900544d0: vaddsubpd Vpd,Hpd,Wpd (66) | vaddsubps Vps,Hps,Wps (F2)
545d1: psrlw Pq,Qq | vpsrlw Vx,Hx,Wx (66),(v1)
546d2: psrld Pq,Qq | vpsrld Vx,Hx,Wx (66),(v1)
547d3: psrlq Pq,Qq | vpsrlq Vx,Hx,Wx (66),(v1)
548d4: paddq Pq,Qq | vpaddq Vx,Hx,Wx (66),(v1)
549d5: pmullw Pq,Qq | vpmullw Vx,Hx,Wx (66),(v1)
550d6: vmovq Wq,Vq (66),(v1) | movq2dq Vdq,Nq (F3) | movdq2q Pq,Uq (F2)
551d7: pmovmskb Gd,Nq | vpmovmskb Gd,Ux (66),(v1)
552d8: psubusb Pq,Qq | vpsubusb Vx,Hx,Wx (66),(v1)
553d9: psubusw Pq,Qq | vpsubusw Vx,Hx,Wx (66),(v1)
554da: pminub Pq,Qq | vpminub Vx,Hx,Wx (66),(v1)
555db: pand Pq,Qq | vpand Vx,Hx,Wx (66),(v1)
556dc: paddusb Pq,Qq | vpaddusb Vx,Hx,Wx (66),(v1)
557dd: paddusw Pq,Qq | vpaddusw Vx,Hx,Wx (66),(v1)
558de: pmaxub Pq,Qq | vpmaxub Vx,Hx,Wx (66),(v1)
559df: pandn Pq,Qq | vpandn Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400560# 0x0f 0xe0-0xef
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900561e0: pavgb Pq,Qq | vpavgb Vx,Hx,Wx (66),(v1)
562e1: psraw Pq,Qq | vpsraw Vx,Hx,Wx (66),(v1)
563e2: psrad Pq,Qq | vpsrad Vx,Hx,Wx (66),(v1)
564e3: pavgw Pq,Qq | vpavgw Vx,Hx,Wx (66),(v1)
565e4: pmulhuw Pq,Qq | vpmulhuw Vx,Hx,Wx (66),(v1)
566e5: pmulhw Pq,Qq | vpmulhw Vx,Hx,Wx (66),(v1)
567e6: vcvttpd2dq Vx,Wpd (66) | vcvtdq2pd Vx,Wdq (F3) | vcvtpd2dq Vx,Wpd (F2)
568e7: movntq Mq,Pq | vmovntdq Mx,Vx (66)
569e8: psubsb Pq,Qq | vpsubsb Vx,Hx,Wx (66),(v1)
570e9: psubsw Pq,Qq | vpsubsw Vx,Hx,Wx (66),(v1)
571ea: pminsw Pq,Qq | vpminsw Vx,Hx,Wx (66),(v1)
572eb: por Pq,Qq | vpor Vx,Hx,Wx (66),(v1)
573ec: paddsb Pq,Qq | vpaddsb Vx,Hx,Wx (66),(v1)
574ed: paddsw Pq,Qq | vpaddsw Vx,Hx,Wx (66),(v1)
575ee: pmaxsw Pq,Qq | vpmaxsw Vx,Hx,Wx (66),(v1)
576ef: pxor Pq,Qq | vpxor Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400577# 0x0f 0xf0-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900578f0: vlddqu Vx,Mx (F2)
579f1: psllw Pq,Qq | vpsllw Vx,Hx,Wx (66),(v1)
580f2: pslld Pq,Qq | vpslld Vx,Hx,Wx (66),(v1)
581f3: psllq Pq,Qq | vpsllq Vx,Hx,Wx (66),(v1)
582f4: pmuludq Pq,Qq | vpmuludq Vx,Hx,Wx (66),(v1)
583f5: pmaddwd Pq,Qq | vpmaddwd Vx,Hx,Wx (66),(v1)
584f6: psadbw Pq,Qq | vpsadbw Vx,Hx,Wx (66),(v1)
585f7: maskmovq Pq,Nq | vmaskmovdqu Vx,Ux (66),(v1)
586f8: psubb Pq,Qq | vpsubb Vx,Hx,Wx (66),(v1)
587f9: psubw Pq,Qq | vpsubw Vx,Hx,Wx (66),(v1)
588fa: psubd Pq,Qq | vpsubd Vx,Hx,Wx (66),(v1)
589fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1)
590fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1)
591fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1)
592fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400593ff:
594EndTable
595
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400596Table: 3-byte opcode 1 (0x0f 0x38)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400597Referrer: 3-byte escape 1
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400598AVXcode: 2
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400599# 0x0f 0x38 0x00-0x0f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090060000: pshufb Pq,Qq | vpshufb Vx,Hx,Wx (66),(v1)
60101: phaddw Pq,Qq | vphaddw Vx,Hx,Wx (66),(v1)
60202: phaddd Pq,Qq | vphaddd Vx,Hx,Wx (66),(v1)
60303: phaddsw Pq,Qq | vphaddsw Vx,Hx,Wx (66),(v1)
60404: pmaddubsw Pq,Qq | vpmaddubsw Vx,Hx,Wx (66),(v1)
60505: phsubw Pq,Qq | vphsubw Vx,Hx,Wx (66),(v1)
60606: phsubd Pq,Qq | vphsubd Vx,Hx,Wx (66),(v1)
60707: phsubsw Pq,Qq | vphsubsw Vx,Hx,Wx (66),(v1)
60808: psignb Pq,Qq | vpsignb Vx,Hx,Wx (66),(v1)
60909: psignw Pq,Qq | vpsignw Vx,Hx,Wx (66),(v1)
6100a: psignd Pq,Qq | vpsignd Vx,Hx,Wx (66),(v1)
6110b: pmulhrsw Pq,Qq | vpmulhrsw Vx,Hx,Wx (66),(v1)
6120c: vpermilps Vx,Hx,Wx (66),(v)
6130d: vpermilpd Vx,Hx,Wx (66),(v)
6140e: vtestps Vx,Wx (66),(v)
6150f: vtestpd Vx,Wx (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400616# 0x0f 0x38 0x10-0x1f
61710: pblendvb Vdq,Wdq (66)
61811:
61912:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090062013: vcvtph2ps Vx,Wx,Ib (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040062114: blendvps Vdq,Wdq (66)
62215: blendvpd Vdq,Wdq (66)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090062316: vpermps Vqq,Hqq,Wqq (66),(v)
62417: vptest Vx,Wx (66)
62518: vbroadcastss Vx,Wd (66),(v)
62619: vbroadcastsd Vqq,Wq (66),(v)
6271a: vbroadcastf128 Vqq,Mdq (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04006281b:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09006291c: pabsb Pq,Qq | vpabsb Vx,Wx (66),(v1)
6301d: pabsw Pq,Qq | vpabsw Vx,Wx (66),(v1)
6311e: pabsd Pq,Qq | vpabsd Vx,Wx (66),(v1)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04006321f:
633# 0x0f 0x38 0x20-0x2f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090063420: vpmovsxbw Vx,Ux/Mq (66),(v1)
63521: vpmovsxbd Vx,Ux/Md (66),(v1)
63622: vpmovsxbq Vx,Ux/Mw (66),(v1)
63723: vpmovsxwd Vx,Ux/Mq (66),(v1)
63824: vpmovsxwq Vx,Ux/Md (66),(v1)
63925: vpmovsxdq Vx,Ux/Mq (66),(v1)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040064026:
64127:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090064228: vpmuldq Vx,Hx,Wx (66),(v1)
64329: vpcmpeqq Vx,Hx,Wx (66),(v1)
6442a: vmovntdqa Vx,Mx (66),(v1)
6452b: vpackusdw Vx,Hx,Wx (66),(v1)
6462c: vmaskmovps Vx,Hx,Mx (66),(v)
6472d: vmaskmovpd Vx,Hx,Mx (66),(v)
6482e: vmaskmovps Mx,Hx,Vx (66),(v)
6492f: vmaskmovpd Mx,Hx,Vx (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400650# 0x0f 0x38 0x30-0x3f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090065130: vpmovzxbw Vx,Ux/Mq (66),(v1)
65231: vpmovzxbd Vx,Ux/Md (66),(v1)
65332: vpmovzxbq Vx,Ux/Mw (66),(v1)
65433: vpmovzxwd Vx,Ux/Mq (66),(v1)
65534: vpmovzxwq Vx,Ux/Md (66),(v1)
65635: vpmovzxdq Vx,Ux/Mq (66),(v1)
65736: vpermd Vqq,Hqq,Wqq (66),(v)
65837: vpcmpgtq Vx,Hx,Wx (66),(v1)
65938: vpminsb Vx,Hx,Wx (66),(v1)
66039: vpminsd Vx,Hx,Wx (66),(v1)
6613a: vpminuw Vx,Hx,Wx (66),(v1)
6623b: vpminud Vx,Hx,Wx (66),(v1)
6633c: vpmaxsb Vx,Hx,Wx (66),(v1)
6643d: vpmaxsd Vx,Hx,Wx (66),(v1)
6653e: vpmaxuw Vx,Hx,Wx (66),(v1)
6663f: vpmaxud Vx,Hx,Wx (66),(v1)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400667# 0x0f 0x38 0x40-0x8f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090066840: vpmulld Vx,Hx,Wx (66),(v1)
66941: vphminposuw Vdq,Wdq (66),(v1)
67042:
67143:
67244:
67345: vpsrlvd/q Vx,Hx,Wx (66),(v)
67446: vpsravd Vx,Hx,Wx (66),(v)
67547: vpsllvd/q Vx,Hx,Wx (66),(v)
676# Skip 0x48-0x57
67758: vpbroadcastd Vx,Wx (66),(v)
67859: vpbroadcastq Vx,Wx (66),(v)
6795a: vbroadcasti128 Vqq,Mdq (66),(v)
680# Skip 0x5b-0x77
68178: vpbroadcastb Vx,Wx (66),(v)
68279: vpbroadcastw Vx,Wx (66),(v)
683# Skip 0x7a-0x7f
68480: INVEPT Gy,Mdq (66)
68581: INVPID Gy,Mdq (66)
68682: INVPCID Gy,Mdq (66)
6878c: vpmaskmovd/q Vx,Hx,Mx (66),(v)
6888e: vpmaskmovd/q Mx,Vx,Hx (66),(v)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400689# 0x0f 0x38 0x90-0xbf (FMA)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090069090: vgatherdd/q Vx,Hx,Wx (66),(v)
69191: vgatherqd/q Vx,Hx,Wx (66),(v)
69292: vgatherdps/d Vx,Hx,Wx (66),(v)
69393: vgatherqps/d Vx,Hx,Wx (66),(v)
69494:
69595:
69696: vfmaddsub132ps/d Vx,Hx,Wx (66),(v)
69797: vfmsubadd132ps/d Vx,Hx,Wx (66),(v)
69898: vfmadd132ps/d Vx,Hx,Wx (66),(v)
69999: vfmadd132ss/d Vx,Hx,Wx (66),(v),(v1)
7009a: vfmsub132ps/d Vx,Hx,Wx (66),(v)
7019b: vfmsub132ss/d Vx,Hx,Wx (66),(v),(v1)
7029c: vfnmadd132ps/d Vx,Hx,Wx (66),(v)
7039d: vfnmadd132ss/d Vx,Hx,Wx (66),(v),(v1)
7049e: vfnmsub132ps/d Vx,Hx,Wx (66),(v)
7059f: vfnmsub132ss/d Vx,Hx,Wx (66),(v),(v1)
706a6: vfmaddsub213ps/d Vx,Hx,Wx (66),(v)
707a7: vfmsubadd213ps/d Vx,Hx,Wx (66),(v)
708a8: vfmadd213ps/d Vx,Hx,Wx (66),(v)
709a9: vfmadd213ss/d Vx,Hx,Wx (66),(v),(v1)
710aa: vfmsub213ps/d Vx,Hx,Wx (66),(v)
711ab: vfmsub213ss/d Vx,Hx,Wx (66),(v),(v1)
712ac: vfnmadd213ps/d Vx,Hx,Wx (66),(v)
713ad: vfnmadd213ss/d Vx,Hx,Wx (66),(v),(v1)
714ae: vfnmsub213ps/d Vx,Hx,Wx (66),(v)
715af: vfnmsub213ss/d Vx,Hx,Wx (66),(v),(v1)
716b6: vfmaddsub231ps/d Vx,Hx,Wx (66),(v)
717b7: vfmsubadd231ps/d Vx,Hx,Wx (66),(v)
718b8: vfmadd231ps/d Vx,Hx,Wx (66),(v)
719b9: vfmadd231ss/d Vx,Hx,Wx (66),(v),(v1)
720ba: vfmsub231ps/d Vx,Hx,Wx (66),(v)
721bb: vfmsub231ss/d Vx,Hx,Wx (66),(v),(v1)
722bc: vfnmadd231ps/d Vx,Hx,Wx (66),(v)
723bd: vfnmadd231ss/d Vx,Hx,Wx (66),(v),(v1)
724be: vfnmsub231ps/d Vx,Hx,Wx (66),(v)
725bf: vfnmsub231ss/d Vx,Hx,Wx (66),(v),(v1)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400726# 0x0f 0x38 0xc0-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900727db: VAESIMC Vdq,Wdq (66),(v1)
728dc: VAESENC Vdq,Hdq,Wdq (66),(v1)
729dd: VAESENCLAST Vdq,Hdq,Wdq (66),(v1)
730de: VAESDEC Vdq,Hdq,Wdq (66),(v1)
731df: VAESDECLAST Vdq,Hdq,Wdq (66),(v1)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900732f0: MOVBE Gy,My | MOVBE Gw,Mw (66) | CRC32 Gd,Eb (F2) | CRC32 Gd,Eb (66&F2)
733f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
Ulrich Drepperce79dac2012-01-17 14:14:02 -0500734f2: ANDN Gy,By,Ey (v)
735f3: Grp17 (1A)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900736f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900737f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900738f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400739EndTable
740
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400741Table: 3-byte opcode 2 (0x0f 0x3a)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400742Referrer: 3-byte escape 2
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400743AVXcode: 3
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400744# 0x0f 0x3a 0x00-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090074500: vpermq Vqq,Wqq,Ib (66),(v)
74601: vpermpd Vqq,Wqq,Ib (66),(v)
74702: vpblendd Vx,Hx,Wx,Ib (66),(v)
74803:
74904: vpermilps Vx,Wx,Ib (66),(v)
75005: vpermilpd Vx,Wx,Ib (66),(v)
75106: vperm2f128 Vqq,Hqq,Wqq,Ib (66),(v)
75207:
75308: vroundps Vx,Wx,Ib (66)
75409: vroundpd Vx,Wx,Ib (66)
7550a: vroundss Vss,Wss,Ib (66),(v1)
7560b: vroundsd Vsd,Wsd,Ib (66),(v1)
7570c: vblendps Vx,Hx,Wx,Ib (66)
7580d: vblendpd Vx,Hx,Wx,Ib (66)
7590e: vpblendw Vx,Hx,Wx,Ib (66),(v1)
7600f: palignr Pq,Qq,Ib | vpalignr Vx,Hx,Wx,Ib (66),(v1)
76114: vpextrb Rd/Mb,Vdq,Ib (66),(v1)
76215: vpextrw Rd/Mw,Vdq,Ib (66),(v1)
76316: vpextrd/q Ey,Vdq,Ib (66),(v1)
76417: vextractps Ed,Vdq,Ib (66),(v1)
76518: vinsertf128 Vqq,Hqq,Wqq,Ib (66),(v)
76619: vextractf128 Wdq,Vqq,Ib (66),(v)
7671d: vcvtps2ph Wx,Vx,Ib (66),(v)
76820: vpinsrb Vdq,Hdq,Ry/Mb,Ib (66),(v1)
76921: vinsertps Vdq,Hdq,Udq/Md,Ib (66),(v1)
77022: vpinsrd/q Vdq,Hdq,Ey,Ib (66),(v1)
77138: vinserti128 Vqq,Hqq,Wqq,Ib (66),(v)
77239: vextracti128 Wdq,Vqq,Ib (66),(v)
77340: vdpps Vx,Hx,Wx,Ib (66)
77441: vdppd Vdq,Hdq,Wdq,Ib (66),(v1)
77542: vmpsadbw Vx,Hx,Wx,Ib (66),(v1)
77644: vpclmulqdq Vdq,Hdq,Wdq,Ib (66),(v1)
77746: vperm2i128 Vqq,Hqq,Wqq,Ib (66),(v)
7784a: vblendvps Vx,Hx,Wx,Lx (66),(v)
7794b: vblendvpd Vx,Hx,Wx,Lx (66),(v)
7804c: vpblendvb Vx,Hx,Wx,Lx (66),(v1)
78160: vpcmpestrm Vdq,Wdq,Ib (66),(v1)
78261: vpcmpestri Vdq,Wdq,Ib (66),(v1)
78362: vpcmpistrm Vdq,Wdq,Ib (66),(v1)
78463: vpcmpistri Vdq,Wdq,Ib (66),(v1)
785df: VAESKEYGEN Vdq,Wdq,Ib (66),(v1)
786f0: RORX Gy,Ey,Ib (F2),(v)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400787EndTable
788
789GrpTable: Grp1
7900: ADD
7911: OR
7922: ADC
7933: SBB
7944: AND
7955: SUB
7966: XOR
7977: CMP
798EndTable
799
800GrpTable: Grp1A
8010: POP
802EndTable
803
804GrpTable: Grp2
8050: ROL
8061: ROR
8072: RCL
8083: RCR
8094: SHL/SAL
8105: SHR
8116:
8127: SAR
813EndTable
814
815GrpTable: Grp3_1
8160: TEST Eb,Ib
8171:
8182: NOT Eb
8193: NEG Eb
8204: MUL AL,Eb
8215: IMUL AL,Eb
8226: DIV AL,Eb
8237: IDIV AL,Eb
824EndTable
825
826GrpTable: Grp3_2
8270: TEST Ev,Iz
8281:
8292: NOT Ev
8303: NEG Ev
8314: MUL rAX,Ev
8325: IMUL rAX,Ev
8336: DIV rAX,Ev
8347: IDIV rAX,Ev
835EndTable
836
837GrpTable: Grp4
8380: INC Eb
8391: DEC Eb
840EndTable
841
842GrpTable: Grp5
8430: INC Ev
8441: DEC Ev
8452: CALLN Ev (f64)
8463: CALLF Ep
8474: JMPN Ev (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008485: JMPF Mp
Masami Hiramatsueb132962009-08-13 16:34:13 -04008496: PUSH Ev (d64)
8507:
851EndTable
852
853GrpTable: Grp6
8540: SLDT Rv/Mw
8551: STR Rv/Mw
8562: LLDT Ew
8573: LTR Ew
8584: VERR Ew
8595: VERW Ew
860EndTable
861
862GrpTable: Grp7
8630: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +09008641: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B)
8652: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04008663: LIDT Ms
8674: SMSW Mw/Rv
8685:
8696: LMSW Ew
8707: INVLPG Mb | SWAPGS (o64),(000),(11B) | RDTSCP (001),(11B)
871EndTable
872
873GrpTable: Grp8
8744: BT
8755: BTS
8766: BTR
8777: BTC
878EndTable
879
880GrpTable: Grp9
8811: CMPXCHG8B/16B Mq/Mdq
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008826: VMPTRLD Mq | VMCLEAR Mq (66) | VMXON Mq (F3) | RDRAND Rv (11B)
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +09008837: VMPTRST Mq | VMPTRST Mq (F3) | RDSEED Rv (11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400884EndTable
885
886GrpTable: Grp10
887EndTable
888
Masami Hiramatsu3e21bb02013-08-06 16:37:50 +0900889# Grp11A and Grp11B are expressed as Grp11 in Intel SDM
890GrpTable: Grp11A
8910: MOV Eb,Ib
8927: XABORT Ib (000),(11B)
893EndTable
894
895GrpTable: Grp11B
8960: MOV Eb,Iz
8977: XBEGIN Jz (000),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400898EndTable
899
900GrpTable: Grp12
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009012: psrlw Nq,Ib (11B) | vpsrlw Hx,Ux,Ib (66),(11B),(v1)
9024: psraw Nq,Ib (11B) | vpsraw Hx,Ux,Ib (66),(11B),(v1)
9036: psllw Nq,Ib (11B) | vpsllw Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400904EndTable
905
906GrpTable: Grp13
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009072: psrld Nq,Ib (11B) | vpsrld Hx,Ux,Ib (66),(11B),(v1)
9084: psrad Nq,Ib (11B) | vpsrad Hx,Ux,Ib (66),(11B),(v1)
9096: pslld Nq,Ib (11B) | vpslld Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400910EndTable
911
912GrpTable: Grp14
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009132: psrlq Nq,Ib (11B) | vpsrlq Hx,Ux,Ib (66),(11B),(v1)
9143: vpsrldq Hx,Ux,Ib (66),(11B),(v1)
9156: psllq Nq,Ib (11B) | vpsllq Hx,Ux,Ib (66),(11B),(v1)
9167: vpslldq Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400917EndTable
918
919GrpTable: Grp15
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009200: fxsave | RDFSBASE Ry (F3),(11B)
9211: fxstor | RDGSBASE Ry (F3),(11B)
9222: vldmxcsr Md (v1) | WRFSBASE Ry (F3),(11B)
9233: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009244: XSAVE
9255: XRSTOR | lfence (11B)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009266: XSAVEOPT | mfence (11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009277: clflush | sfence (11B)
928EndTable
929
930GrpTable: Grp16
9310: prefetch NTA
9321: prefetch T0
9332: prefetch T1
9343: prefetch T2
935EndTable
936
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900937GrpTable: Grp17
9381: BLSR By,Ey (v)
9392: BLSMSK By,Ey (v)
9403: BLSI By,Ey (v)
941EndTable
942
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -0400943# AMD's Prefetch Group
944GrpTable: GrpP
9450: PREFETCH
9461: PREFETCHW
947EndTable
948
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700949GrpTable: GrpPDLK
9500: MONTMUL
9511: XSHA1
9522: XSHA2
953EndTable
954
Masami Hiramatsueb132962009-08-13 16:34:13 -0400955GrpTable: GrpRNG
9560: xstore-rng
9571: xcrypt-ecb
9582: xcrypt-cbc
9594: xcrypt-cfb
9605: xcrypt-ofb
961EndTable