blob: 5d7e51f3fd2812ed4176c696d9b175d4ec52fe46 [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.
4# - Intel(R) 64 and IA-32 Architectures Software Developer's Manual Vol.2
5# (#325383-040US, October 2011)
6# - Intel(R) Advanced Vector Extensions Programming Reference
7# (#319433-011,JUNE 2011).
8#
Masami Hiramatsueb132962009-08-13 16:34:13 -04009#<Opcode maps>
10# Table: table-name
11# Referrer: escaped-name
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040012# AVXcode: avx-code
Masami Hiramatsueb132962009-08-13 16:34:13 -040013# opcode: mnemonic|GrpXXX [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
14# (or)
15# opcode: escape # escaped-name
16# EndTable
17#
18#<group maps>
19# GrpTable: GrpXXX
20# reg: mnemonic [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
21# EndTable
22#
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040023# AVX Superscripts
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090024# (v): this opcode requires VEX prefix.
25# (v1): this opcode only supports 128bit VEX.
26#
27# Last Prefix Superscripts
28# - (66): the last prefix is 0x66
29# - (F3): the last prefix is 0xF3
30# - (F2): the last prefix is 0xF2
Masami Hiramatsu436d03f2012-06-05 00:09:11 +090031# - (!F3) : the last prefix is not 0xF3 (including non-last prefix case)
Masami Hiramatsueb132962009-08-13 16:34:13 -040032
33Table: one byte opcode
34Referrer:
Masami Hiramatsue0e492e2009-10-27 16:42:27 -040035AVXcode:
Masami Hiramatsueb132962009-08-13 16:34:13 -040036# 0x00 - 0x0f
3700: ADD Eb,Gb
3801: ADD Ev,Gv
3902: ADD Gb,Eb
4003: ADD Gv,Ev
4104: ADD AL,Ib
4205: ADD rAX,Iz
4306: PUSH ES (i64)
4407: POP ES (i64)
4508: OR Eb,Gb
4609: OR Ev,Gv
470a: OR Gb,Eb
480b: OR Gv,Ev
490c: OR AL,Ib
500d: OR rAX,Iz
510e: PUSH CS (i64)
520f: escape # 2-byte escape
53# 0x10 - 0x1f
5410: ADC Eb,Gb
5511: ADC Ev,Gv
5612: ADC Gb,Eb
5713: ADC Gv,Ev
5814: ADC AL,Ib
5915: ADC rAX,Iz
6016: PUSH SS (i64)
6117: POP SS (i64)
6218: SBB Eb,Gb
6319: SBB Ev,Gv
641a: SBB Gb,Eb
651b: SBB Gv,Ev
661c: SBB AL,Ib
671d: SBB rAX,Iz
681e: PUSH DS (i64)
691f: POP DS (i64)
70# 0x20 - 0x2f
7120: AND Eb,Gb
7221: AND Ev,Gv
7322: AND Gb,Eb
7423: AND Gv,Ev
7524: AND AL,Ib
7625: AND rAx,Iz
7726: SEG=ES (Prefix)
7827: DAA (i64)
7928: SUB Eb,Gb
8029: SUB Ev,Gv
812a: SUB Gb,Eb
822b: SUB Gv,Ev
832c: SUB AL,Ib
842d: SUB rAX,Iz
852e: SEG=CS (Prefix)
862f: DAS (i64)
87# 0x30 - 0x3f
8830: XOR Eb,Gb
8931: XOR Ev,Gv
9032: XOR Gb,Eb
9133: XOR Gv,Ev
9234: XOR AL,Ib
9335: XOR rAX,Iz
9436: SEG=SS (Prefix)
9537: AAA (i64)
9638: CMP Eb,Gb
9739: CMP Ev,Gv
983a: CMP Gb,Eb
993b: CMP Gv,Ev
1003c: CMP AL,Ib
1013d: CMP rAX,Iz
1023e: SEG=DS (Prefix)
1033f: AAS (i64)
104# 0x40 - 0x4f
10540: INC eAX (i64) | REX (o64)
10641: INC eCX (i64) | REX.B (o64)
10742: INC eDX (i64) | REX.X (o64)
10843: INC eBX (i64) | REX.XB (o64)
10944: INC eSP (i64) | REX.R (o64)
11045: INC eBP (i64) | REX.RB (o64)
11146: INC eSI (i64) | REX.RX (o64)
11247: INC eDI (i64) | REX.RXB (o64)
11348: DEC eAX (i64) | REX.W (o64)
11449: DEC eCX (i64) | REX.WB (o64)
1154a: DEC eDX (i64) | REX.WX (o64)
1164b: DEC eBX (i64) | REX.WXB (o64)
1174c: DEC eSP (i64) | REX.WR (o64)
1184d: DEC eBP (i64) | REX.WRB (o64)
1194e: DEC eSI (i64) | REX.WRX (o64)
1204f: DEC eDI (i64) | REX.WRXB (o64)
121# 0x50 - 0x5f
12250: PUSH rAX/r8 (d64)
12351: PUSH rCX/r9 (d64)
12452: PUSH rDX/r10 (d64)
12553: PUSH rBX/r11 (d64)
12654: PUSH rSP/r12 (d64)
12755: PUSH rBP/r13 (d64)
12856: PUSH rSI/r14 (d64)
12957: PUSH rDI/r15 (d64)
13058: POP rAX/r8 (d64)
13159: POP rCX/r9 (d64)
1325a: POP rDX/r10 (d64)
1335b: POP rBX/r11 (d64)
1345c: POP rSP/r12 (d64)
1355d: POP rBP/r13 (d64)
1365e: POP rSI/r14 (d64)
1375f: POP rDI/r15 (d64)
138# 0x60 - 0x6f
13960: PUSHA/PUSHAD (i64)
14061: POPA/POPAD (i64)
14162: BOUND Gv,Ma (i64)
14263: ARPL Ew,Gw (i64) | MOVSXD Gv,Ev (o64)
14364: SEG=FS (Prefix)
14465: SEG=GS (Prefix)
14566: Operand-Size (Prefix)
14667: Address-Size (Prefix)
14768: PUSH Iz (d64)
14869: IMUL Gv,Ev,Iz
1496a: PUSH Ib (d64)
1506b: IMUL Gv,Ev,Ib
1516c: INS/INSB Yb,DX
1526d: INS/INSW/INSD Yz,DX
1536e: OUTS/OUTSB DX,Xb
1546f: OUTS/OUTSW/OUTSD DX,Xz
155# 0x70 - 0x7f
15670: JO Jb
15771: JNO Jb
15872: JB/JNAE/JC Jb
15973: JNB/JAE/JNC Jb
16074: JZ/JE Jb
16175: JNZ/JNE Jb
16276: JBE/JNA Jb
16377: JNBE/JA Jb
16478: JS Jb
16579: JNS Jb
1667a: JP/JPE Jb
1677b: JNP/JPO Jb
1687c: JL/JNGE Jb
1697d: JNL/JGE Jb
1707e: JLE/JNG Jb
1717f: JNLE/JG Jb
172# 0x80 - 0x8f
17380: Grp1 Eb,Ib (1A)
17481: Grp1 Ev,Iz (1A)
17582: Grp1 Eb,Ib (1A),(i64)
17683: Grp1 Ev,Ib (1A)
17784: TEST Eb,Gb
17885: TEST Ev,Gv
17986: XCHG Eb,Gb
18087: XCHG Ev,Gv
18188: MOV Eb,Gb
18289: MOV Ev,Gv
1838a: MOV Gb,Eb
1848b: MOV Gv,Ev
1858c: MOV Ev,Sw
1868d: LEA Gv,M
1878e: MOV Sw,Ew
1888f: Grp1A (1A) | POP Ev (d64)
189# 0x90 - 0x9f
19090: NOP | PAUSE (F3) | XCHG r8,rAX
19191: XCHG rCX/r9,rAX
19292: XCHG rDX/r10,rAX
19393: XCHG rBX/r11,rAX
19494: XCHG rSP/r12,rAX
19595: XCHG rBP/r13,rAX
19696: XCHG rSI/r14,rAX
19797: XCHG rDI/r15,rAX
19898: CBW/CWDE/CDQE
19999: CWD/CDQ/CQO
2009a: CALLF Ap (i64)
2019b: FWAIT/WAIT
2029c: PUSHF/D/Q Fv (d64)
2039d: POPF/D/Q Fv (d64)
2049e: SAHF
2059f: LAHF
206# 0xa0 - 0xaf
207a0: MOV AL,Ob
208a1: MOV rAX,Ov
209a2: MOV Ob,AL
210a3: MOV Ov,rAX
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900211a4: MOVS/B Yb,Xb
212a5: MOVS/W/D/Q Yv,Xv
Masami Hiramatsueb132962009-08-13 16:34:13 -0400213a6: CMPS/B Xb,Yb
214a7: CMPS/W/D Xv,Yv
215a8: TEST AL,Ib
216a9: TEST rAX,Iz
217aa: STOS/B Yb,AL
218ab: STOS/W/D/Q Yv,rAX
219ac: LODS/B AL,Xb
220ad: LODS/W/D/Q rAX,Xv
221ae: SCAS/B AL,Yb
Ulrich Drepper8d973b62012-01-15 19:40:24 -0500222# Note: The May 2011 Intel manual shows Xv for the second parameter of the
223# next instruction but Yv is correct
224af: SCAS/W/D/Q rAX,Yv
Masami Hiramatsueb132962009-08-13 16:34:13 -0400225# 0xb0 - 0xbf
226b0: MOV AL/R8L,Ib
227b1: MOV CL/R9L,Ib
228b2: MOV DL/R10L,Ib
229b3: MOV BL/R11L,Ib
230b4: MOV AH/R12L,Ib
231b5: MOV CH/R13L,Ib
232b6: MOV DH/R14L,Ib
233b7: MOV BH/R15L,Ib
234b8: MOV rAX/r8,Iv
235b9: MOV rCX/r9,Iv
236ba: MOV rDX/r10,Iv
237bb: MOV rBX/r11,Iv
238bc: MOV rSP/r12,Iv
239bd: MOV rBP/r13,Iv
240be: MOV rSI/r14,Iv
241bf: MOV rDI/r15,Iv
242# 0xc0 - 0xcf
243c0: Grp2 Eb,Ib (1A)
244c1: Grp2 Ev,Ib (1A)
245c2: RETN Iw (f64)
246c3: RETN
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900247c4: LES Gz,Mp (i64) | VEX+2byte (Prefix)
248c5: LDS Gz,Mp (i64) | VEX+1byte (Prefix)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400249c6: Grp11 Eb,Ib (1A)
250c7: Grp11 Ev,Iz (1A)
251c8: ENTER Iw,Ib
252c9: LEAVE (d64)
253ca: RETF Iw
254cb: RETF
255cc: INT3
256cd: INT Ib
257ce: INTO (i64)
258cf: IRET/D/Q
259# 0xd0 - 0xdf
260d0: Grp2 Eb,1 (1A)
261d1: Grp2 Ev,1 (1A)
262d2: Grp2 Eb,CL (1A)
263d3: Grp2 Ev,CL (1A)
264d4: AAM Ib (i64)
265d5: AAD Ib (i64)
266d6:
267d7: XLAT/XLATB
268d8: ESC
269d9: ESC
270da: ESC
271db: ESC
272dc: ESC
273dd: ESC
274de: ESC
275df: ESC
276# 0xe0 - 0xef
277e0: LOOPNE/LOOPNZ Jb (f64)
278e1: LOOPE/LOOPZ Jb (f64)
279e2: LOOP Jb (f64)
280e3: JrCXZ Jb (f64)
281e4: IN AL,Ib
282e5: IN eAX,Ib
283e6: OUT Ib,AL
284e7: OUT Ib,eAX
285e8: CALL Jz (f64)
286e9: JMP-near Jz (f64)
287ea: JMP-far Ap (i64)
288eb: JMP-short Jb (f64)
289ec: IN AL,DX
290ed: IN eAX,DX
291ee: OUT DX,AL
292ef: OUT DX,eAX
293# 0xf0 - 0xff
294f0: LOCK (Prefix)
295f1:
296f2: REPNE (Prefix)
297f3: REP/REPE (Prefix)
298f4: HLT
299f5: CMC
300f6: Grp3_1 Eb (1A)
301f7: Grp3_2 Ev (1A)
302f8: CLC
303f9: STC
304fa: CLI
305fb: STI
306fc: CLD
307fd: STD
308fe: Grp4 (1A)
309ff: Grp5 (1A)
310EndTable
311
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400312Table: 2-byte opcode (0x0f)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400313Referrer: 2-byte escape
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400314AVXcode: 1
Masami Hiramatsueb132962009-08-13 16:34:13 -0400315# 0x0f 0x00-0x0f
31600: Grp6 (1A)
31701: Grp7 (1A)
31802: LAR Gv,Ew
31903: LSL Gv,Ew
32004:
32105: SYSCALL (o64)
32206: CLTS
32307: SYSRET (o64)
32408: INVD
32509: WBINVD
3260a:
3270b: UD2 (1B)
3280c:
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -04003290d: NOP Ev | GrpP
3300e: 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)
732f0: MOVBE Gy,My | MOVBE Gw,Mw (66) | CRC32 Gd,Eb (F2)
733f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (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)
737f6: MULX By,Gy,rDX,Ey (F2),(v)
738f7: 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)
8641: SIDT Ms | MONITOR (000),(11B) | MWAIT (001)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008652: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(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)
8837: VMPTRST Mq | VMPTRST Mq (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400884EndTable
885
886GrpTable: Grp10
887EndTable
888
889GrpTable: Grp11
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900890# Note: the operands are given by group opcode
Masami Hiramatsueb132962009-08-13 16:34:13 -04008910: MOV
892EndTable
893
894GrpTable: Grp12
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008952: psrlw Nq,Ib (11B) | vpsrlw Hx,Ux,Ib (66),(11B),(v1)
8964: psraw Nq,Ib (11B) | vpsraw Hx,Ux,Ib (66),(11B),(v1)
8976: psllw Nq,Ib (11B) | vpsllw Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400898EndTable
899
900GrpTable: Grp13
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009012: psrld Nq,Ib (11B) | vpsrld Hx,Ux,Ib (66),(11B),(v1)
9024: psrad Nq,Ib (11B) | vpsrad Hx,Ux,Ib (66),(11B),(v1)
9036: pslld Nq,Ib (11B) | vpslld Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400904EndTable
905
906GrpTable: Grp14
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009072: psrlq Nq,Ib (11B) | vpsrlq Hx,Ux,Ib (66),(11B),(v1)
9083: vpsrldq Hx,Ux,Ib (66),(11B),(v1)
9096: psllq Nq,Ib (11B) | vpsllq Hx,Ux,Ib (66),(11B),(v1)
9107: vpslldq Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400911EndTable
912
913GrpTable: Grp15
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009140: fxsave | RDFSBASE Ry (F3),(11B)
9151: fxstor | RDGSBASE Ry (F3),(11B)
9162: vldmxcsr Md (v1) | WRFSBASE Ry (F3),(11B)
9173: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009184: XSAVE
9195: XRSTOR | lfence (11B)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009206: XSAVEOPT | mfence (11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009217: clflush | sfence (11B)
922EndTable
923
924GrpTable: Grp16
9250: prefetch NTA
9261: prefetch T0
9272: prefetch T1
9283: prefetch T2
929EndTable
930
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900931GrpTable: Grp17
9321: BLSR By,Ey (v)
9332: BLSMSK By,Ey (v)
9343: BLSI By,Ey (v)
935EndTable
936
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -0400937# AMD's Prefetch Group
938GrpTable: GrpP
9390: PREFETCH
9401: PREFETCHW
941EndTable
942
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700943GrpTable: GrpPDLK
9440: MONTMUL
9451: XSHA1
9462: XSHA2
947EndTable
948
Masami Hiramatsueb132962009-08-13 16:34:13 -0400949GrpTable: GrpRNG
9500: xstore-rng
9511: xcrypt-ecb
9522: xcrypt-cbc
9534: xcrypt-cfb
9545: xcrypt-ofb
955EndTable