blob: 5b83c51c12e02e8146aba31c0236ff1e7d42d4b0 [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 Hiramatsue0e492e2009-10-27 16:42:27 -040031#
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
222af: SCAS/W/D/Q rAX,Xv
223# 0xb0 - 0xbf
224b0: MOV AL/R8L,Ib
225b1: MOV CL/R9L,Ib
226b2: MOV DL/R10L,Ib
227b3: MOV BL/R11L,Ib
228b4: MOV AH/R12L,Ib
229b5: MOV CH/R13L,Ib
230b6: MOV DH/R14L,Ib
231b7: MOV BH/R15L,Ib
232b8: MOV rAX/r8,Iv
233b9: MOV rCX/r9,Iv
234ba: MOV rDX/r10,Iv
235bb: MOV rBX/r11,Iv
236bc: MOV rSP/r12,Iv
237bd: MOV rBP/r13,Iv
238be: MOV rSI/r14,Iv
239bf: MOV rDI/r15,Iv
240# 0xc0 - 0xcf
241c0: Grp2 Eb,Ib (1A)
242c1: Grp2 Ev,Ib (1A)
243c2: RETN Iw (f64)
244c3: RETN
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900245c4: LES Gz,Mp (i64) | VEX+2byte (Prefix)
246c5: LDS Gz,Mp (i64) | VEX+1byte (Prefix)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400247c6: Grp11 Eb,Ib (1A)
248c7: Grp11 Ev,Iz (1A)
249c8: ENTER Iw,Ib
250c9: LEAVE (d64)
251ca: RETF Iw
252cb: RETF
253cc: INT3
254cd: INT Ib
255ce: INTO (i64)
256cf: IRET/D/Q
257# 0xd0 - 0xdf
258d0: Grp2 Eb,1 (1A)
259d1: Grp2 Ev,1 (1A)
260d2: Grp2 Eb,CL (1A)
261d3: Grp2 Ev,CL (1A)
262d4: AAM Ib (i64)
263d5: AAD Ib (i64)
264d6:
265d7: XLAT/XLATB
266d8: ESC
267d9: ESC
268da: ESC
269db: ESC
270dc: ESC
271dd: ESC
272de: ESC
273df: ESC
274# 0xe0 - 0xef
275e0: LOOPNE/LOOPNZ Jb (f64)
276e1: LOOPE/LOOPZ Jb (f64)
277e2: LOOP Jb (f64)
278e3: JrCXZ Jb (f64)
279e4: IN AL,Ib
280e5: IN eAX,Ib
281e6: OUT Ib,AL
282e7: OUT Ib,eAX
283e8: CALL Jz (f64)
284e9: JMP-near Jz (f64)
285ea: JMP-far Ap (i64)
286eb: JMP-short Jb (f64)
287ec: IN AL,DX
288ed: IN eAX,DX
289ee: OUT DX,AL
290ef: OUT DX,eAX
291# 0xf0 - 0xff
292f0: LOCK (Prefix)
293f1:
294f2: REPNE (Prefix)
295f3: REP/REPE (Prefix)
296f4: HLT
297f5: CMC
298f6: Grp3_1 Eb (1A)
299f7: Grp3_2 Ev (1A)
300f8: CLC
301f9: STC
302fa: CLI
303fb: STI
304fc: CLD
305fd: STD
306fe: Grp4 (1A)
307ff: Grp5 (1A)
308EndTable
309
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400310Table: 2-byte opcode (0x0f)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400311Referrer: 2-byte escape
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400312AVXcode: 1
Masami Hiramatsueb132962009-08-13 16:34:13 -0400313# 0x0f 0x00-0x0f
31400: Grp6 (1A)
31501: Grp7 (1A)
31602: LAR Gv,Ew
31703: LSL Gv,Ew
31804:
31905: SYSCALL (o64)
32006: CLTS
32107: SYSRET (o64)
32208: INVD
32309: WBINVD
3240a:
3250b: UD2 (1B)
3260c:
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -04003270d: NOP Ev | GrpP
3280e: FEMMS
329# 3DNow! uses the last imm byte as opcode extension.
3300f: 3DNow! Pq,Qq,Ib
Masami Hiramatsueb132962009-08-13 16:34:13 -0400331# 0x0f 0x10-0x1f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900332# NOTE: According to Intel SDM opcode map, vmovups and vmovupd has no operands
333# but it actually has operands. And also, vmovss and vmovsd only accept 128bit.
334# MOVSS/MOVSD has too many forms(3) on SDM. This map just shows a typical form.
335# Many AVX instructions lack v1 superscript, according to Intel AVX-Prgramming
336# Reference A.1
33710: vmovups Vps,Wps | vmovupd Vpd,Wpd (66) | vmovss Vx,Hx,Wss (F3),(v1) | vmovsd Vx,Hx,Wsd (F2),(v1)
33811: vmovups Wps,Vps | vmovupd Wpd,Vpd (66) | vmovss Wss,Hx,Vss (F3),(v1) | vmovsd Wsd,Hx,Vsd (F2),(v1)
33912: vmovlps Vq,Hq,Mq (v1) | vmovhlps Vq,Hq,Uq (v1) | vmovlpd Vq,Hq,Mq (66),(v1) | vmovsldup Vx,Wx (F3) | vmovddup Vx,Wx (F2)
34013: vmovlps Mq,Vq (v1) | vmovlpd Mq,Vq (66),(v1)
34114: vunpcklps Vx,Hx,Wx | vunpcklpd Vx,Hx,Wx (66)
34215: vunpckhps Vx,Hx,Wx | vunpckhpd Vx,Hx,Wx (66)
34316: vmovhps Vdq,Hq,Mq (v1) | vmovlhps Vdq,Hq,Uq (v1) | vmovhpd Vdq,Hq,Mq (66),(v1) | vmovshdup Vx,Wx (F3)
34417: vmovhps Mq,Vq (v1) | vmovhpd Mq,Vq (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -040034518: Grp16 (1A)
34619:
3471a:
3481b:
3491c:
3501d:
3511e:
3521f: NOP Ev
353# 0x0f 0x20-0x2f
35420: MOV Rd,Cd
35521: MOV Rd,Dd
35622: MOV Cd,Rd
35723: MOV Dd,Rd
35824:
35925:
36026:
36127:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090036228: vmovaps Vps,Wps | vmovapd Vpd,Wpd (66)
36329: vmovaps Wps,Vps | vmovapd Wpd,Vpd (66)
3642a: cvtpi2ps Vps,Qpi | cvtpi2pd Vpd,Qpi (66) | vcvtsi2ss Vss,Hss,Ey (F3),(v1) | vcvtsi2sd Vsd,Hsd,Ey (F2),(v1)
3652b: vmovntps Mps,Vps | vmovntpd Mpd,Vpd (66)
3662c: cvttps2pi Ppi,Wps | cvttpd2pi Ppi,Wpd (66) | vcvttss2si Gy,Wss (F3),(v1) | vcvttsd2si Gy,Wsd (F2),(v1)
3672d: cvtps2pi Ppi,Wps | cvtpd2pi Qpi,Wpd (66) | vcvtss2si Gy,Wss (F3),(v1) | vcvtsd2si Gy,Wsd (F2),(v1)
3682e: vucomiss Vss,Wss (v1) | vucomisd Vsd,Wsd (66),(v1)
3692f: vcomiss Vss,Wss (v1) | vcomisd Vsd,Wsd (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400370# 0x0f 0x30-0x3f
37130: WRMSR
37231: RDTSC
37332: RDMSR
37433: RDPMC
37534: SYSENTER
37635: SYSEXIT
37736:
37837: GETSEC
37938: escape # 3-byte escape 1
38039:
3813a: escape # 3-byte escape 2
3823b:
3833c:
3843d:
3853e:
3863f:
387# 0x0f 0x40-0x4f
38840: CMOVO Gv,Ev
38941: CMOVNO Gv,Ev
39042: CMOVB/C/NAE Gv,Ev
39143: CMOVAE/NB/NC Gv,Ev
39244: CMOVE/Z Gv,Ev
39345: CMOVNE/NZ Gv,Ev
39446: CMOVBE/NA Gv,Ev
39547: CMOVA/NBE Gv,Ev
39648: CMOVS Gv,Ev
39749: CMOVNS Gv,Ev
3984a: CMOVP/PE Gv,Ev
3994b: CMOVNP/PO Gv,Ev
4004c: CMOVL/NGE Gv,Ev
4014d: CMOVNL/GE Gv,Ev
4024e: CMOVLE/NG Gv,Ev
4034f: CMOVNLE/G Gv,Ev
404# 0x0f 0x50-0x5f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090040550: vmovmskps Gy,Ups | vmovmskpd Gy,Upd (66)
40651: vsqrtps Vps,Wps | vsqrtpd Vpd,Wpd (66) | vsqrtss Vss,Hss,Wss (F3),(v1) | vsqrtsd Vsd,Hsd,Wsd (F2),(v1)
40752: vrsqrtps Vps,Wps | vrsqrtss Vss,Hss,Wss (F3),(v1)
40853: vrcpps Vps,Wps | vrcpss Vss,Hss,Wss (F3),(v1)
40954: vandps Vps,Hps,Wps | vandpd Vpd,Hpd,Wpd (66)
41055: vandnps Vps,Hps,Wps | vandnpd Vpd,Hpd,Wpd (66)
41156: vorps Vps,Hps,Wps | vorpd Vpd,Hpd,Wpd (66)
41257: vxorps Vps,Hps,Wps | vxorpd Vpd,Hpd,Wpd (66)
41358: vaddps Vps,Hps,Wps | vaddpd Vpd,Hpd,Wpd (66) | vaddss Vss,Hss,Wss (F3),(v1) | vaddsd Vsd,Hsd,Wsd (F2),(v1)
41459: vmulps Vps,Hps,Wps | vmulpd Vpd,Hpd,Wpd (66) | vmulss Vss,Hss,Wss (F3),(v1) | vmulsd Vsd,Hsd,Wsd (F2),(v1)
4155a: vcvtps2pd Vpd,Wps | vcvtpd2ps Vps,Wpd (66) | vcvtss2sd Vsd,Hx,Wss (F3),(v1) | vcvtsd2ss Vss,Hx,Wsd (F2),(v1)
4165b: vcvtdq2ps Vps,Wdq | vcvtps2dq Vdq,Wps (66) | vcvttps2dq Vdq,Wps (F3)
4175c: vsubps Vps,Hps,Wps | vsubpd Vpd,Hpd,Wpd (66) | vsubss Vss,Hss,Wss (F3),(v1) | vsubsd Vsd,Hsd,Wsd (F2),(v1)
4185d: vminps Vps,Hps,Wps | vminpd Vpd,Hpd,Wpd (66) | vminss Vss,Hss,Wss (F3),(v1) | vminsd Vsd,Hsd,Wsd (F2),(v1)
4195e: vdivps Vps,Hps,Wps | vdivpd Vpd,Hpd,Wpd (66) | vdivss Vss,Hss,Wss (F3),(v1) | vdivsd Vsd,Hsd,Wsd (F2),(v1)
4205f: 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 -0400421# 0x0f 0x60-0x6f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090042260: punpcklbw Pq,Qd | vpunpcklbw Vx,Hx,Wx (66),(v1)
42361: punpcklwd Pq,Qd | vpunpcklwd Vx,Hx,Wx (66),(v1)
42462: punpckldq Pq,Qd | vpunpckldq Vx,Hx,Wx (66),(v1)
42563: packsswb Pq,Qq | vpacksswb Vx,Hx,Wx (66),(v1)
42664: pcmpgtb Pq,Qq | vpcmpgtb Vx,Hx,Wx (66),(v1)
42765: pcmpgtw Pq,Qq | vpcmpgtw Vx,Hx,Wx (66),(v1)
42866: pcmpgtd Pq,Qq | vpcmpgtd Vx,Hx,Wx (66),(v1)
42967: packuswb Pq,Qq | vpackuswb Vx,Hx,Wx (66),(v1)
43068: punpckhbw Pq,Qd | vpunpckhbw Vx,Hx,Wx (66),(v1)
43169: punpckhwd Pq,Qd | vpunpckhwd Vx,Hx,Wx (66),(v1)
4326a: punpckhdq Pq,Qd | vpunpckhdq Vx,Hx,Wx (66),(v1)
4336b: packssdw Pq,Qd | vpackssdw Vx,Hx,Wx (66),(v1)
4346c: vpunpcklqdq Vx,Hx,Wx (66),(v1)
4356d: vpunpckhqdq Vx,Hx,Wx (66),(v1)
4366e: movd/q Pd,Ey | vmovd/q Vy,Ey (66),(v1)
4376f: movq Pq,Qq | vmovdqa Vx,Wx (66) | vmovdqu Vx,Wx (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400438# 0x0f 0x70-0x7f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090043970: 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 -040044071: Grp12 (1A)
44172: Grp13 (1A)
44273: Grp14 (1A)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090044374: pcmpeqb Pq,Qq | vpcmpeqb Vx,Hx,Wx (66),(v1)
44475: pcmpeqw Pq,Qq | vpcmpeqw Vx,Hx,Wx (66),(v1)
44576: pcmpeqd Pq,Qq | vpcmpeqd Vx,Hx,Wx (66),(v1)
446# Note: Remove (v), because vzeroall and vzeroupper becomes emms without VEX.
44777: emms | vzeroupper | vzeroall
44878: VMREAD Ey,Gy
44979: VMWRITE Gy,Ey
Masami Hiramatsueb132962009-08-13 16:34:13 -04004507a:
4517b:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09004527c: vhaddpd Vpd,Hpd,Wpd (66) | vhaddps Vps,Hps,Wps (F2)
4537d: vhsubpd Vpd,Hpd,Wpd (66) | vhsubps Vps,Hps,Wps (F2)
4547e: movd/q Ey,Pd | vmovd/q Ey,Vy (66),(v1) | vmovq Vq,Wq (F3),(v1)
4557f: movq Qq,Pq | vmovdqa Wx,Vx (66) | vmovdqu Wx,Vx (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400456# 0x0f 0x80-0x8f
45780: JO Jz (f64)
45881: JNO Jz (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090045982: JB/JC/JNAE Jz (f64)
46083: JAE/JNB/JNC Jz (f64)
46184: JE/JZ Jz (f64)
46285: JNE/JNZ Jz (f64)
Masami Hiramatsueb132962009-08-13 16:34:13 -040046386: JBE/JNA Jz (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090046487: JA/JNBE Jz (f64)
Masami Hiramatsueb132962009-08-13 16:34:13 -040046588: JS Jz (f64)
46689: JNS Jz (f64)
4678a: JP/JPE Jz (f64)
4688b: JNP/JPO Jz (f64)
4698c: JL/JNGE Jz (f64)
4708d: JNL/JGE Jz (f64)
4718e: JLE/JNG Jz (f64)
4728f: JNLE/JG Jz (f64)
473# 0x0f 0x90-0x9f
47490: SETO Eb
47591: SETNO Eb
47692: SETB/C/NAE Eb
47793: SETAE/NB/NC Eb
47894: SETE/Z Eb
47995: SETNE/NZ Eb
48096: SETBE/NA Eb
48197: SETA/NBE Eb
48298: SETS Eb
48399: SETNS Eb
4849a: SETP/PE Eb
4859b: SETNP/PO Eb
4869c: SETL/NGE Eb
4879d: SETNL/GE Eb
4889e: SETLE/NG Eb
4899f: SETNLE/G Eb
490# 0x0f 0xa0-0xaf
491a0: PUSH FS (d64)
492a1: POP FS (d64)
493a2: CPUID
494a3: BT Ev,Gv
495a4: SHLD Ev,Gv,Ib
496a5: SHLD Ev,Gv,CL
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700497a6: GrpPDLK
Masami Hiramatsueb132962009-08-13 16:34:13 -0400498a7: GrpRNG
499a8: PUSH GS (d64)
500a9: POP GS (d64)
501aa: RSM
502ab: BTS Ev,Gv
503ac: SHRD Ev,Gv,Ib
504ad: SHRD Ev,Gv,CL
505ae: Grp15 (1A),(1C)
506af: IMUL Gv,Ev
507# 0x0f 0xb0-0xbf
508b0: CMPXCHG Eb,Gb
509b1: CMPXCHG Ev,Gv
510b2: LSS Gv,Mp
511b3: BTR Ev,Gv
512b4: LFS Gv,Mp
513b5: LGS Gv,Mp
514b6: MOVZX Gv,Eb
515b7: MOVZX Gv,Ew
516b8: JMPE | POPCNT Gv,Ev (F3)
517b9: Grp10 (1A)
518ba: Grp8 Ev,Ib (1A)
519bb: BTC Ev,Gv
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900520bc: BSF Gv,Ev | TZCNT Gv,Ev (F3)
521bd: BSR Gv,Ev | LZCNT Gv,Ev (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400522be: MOVSX Gv,Eb
523bf: MOVSX Gv,Ew
524# 0x0f 0xc0-0xcf
525c0: XADD Eb,Gb
526c1: XADD Ev,Gv
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900527c2: 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)
528c3: movnti My,Gy
529c4: pinsrw Pq,Ry/Mw,Ib | vpinsrw Vdq,Hdq,Ry/Mw,Ib (66),(v1)
530c5: pextrw Gd,Nq,Ib | vpextrw Gd,Udq,Ib (66),(v1)
531c6: vshufps Vps,Hps,Wps,Ib | vshufpd Vpd,Hpd,Wpd,Ib (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400532c7: Grp9 (1A)
533c8: BSWAP RAX/EAX/R8/R8D
534c9: BSWAP RCX/ECX/R9/R9D
535ca: BSWAP RDX/EDX/R10/R10D
536cb: BSWAP RBX/EBX/R11/R11D
537cc: BSWAP RSP/ESP/R12/R12D
538cd: BSWAP RBP/EBP/R13/R13D
539ce: BSWAP RSI/ESI/R14/R14D
540cf: BSWAP RDI/EDI/R15/R15D
541# 0x0f 0xd0-0xdf
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900542d0: vaddsubpd Vpd,Hpd,Wpd (66) | vaddsubps Vps,Hps,Wps (F2)
543d1: psrlw Pq,Qq | vpsrlw Vx,Hx,Wx (66),(v1)
544d2: psrld Pq,Qq | vpsrld Vx,Hx,Wx (66),(v1)
545d3: psrlq Pq,Qq | vpsrlq Vx,Hx,Wx (66),(v1)
546d4: paddq Pq,Qq | vpaddq Vx,Hx,Wx (66),(v1)
547d5: pmullw Pq,Qq | vpmullw Vx,Hx,Wx (66),(v1)
548d6: vmovq Wq,Vq (66),(v1) | movq2dq Vdq,Nq (F3) | movdq2q Pq,Uq (F2)
549d7: pmovmskb Gd,Nq | vpmovmskb Gd,Ux (66),(v1)
550d8: psubusb Pq,Qq | vpsubusb Vx,Hx,Wx (66),(v1)
551d9: psubusw Pq,Qq | vpsubusw Vx,Hx,Wx (66),(v1)
552da: pminub Pq,Qq | vpminub Vx,Hx,Wx (66),(v1)
553db: pand Pq,Qq | vpand Vx,Hx,Wx (66),(v1)
554dc: paddusb Pq,Qq | vpaddusb Vx,Hx,Wx (66),(v1)
555dd: paddusw Pq,Qq | vpaddusw Vx,Hx,Wx (66),(v1)
556de: pmaxub Pq,Qq | vpmaxub Vx,Hx,Wx (66),(v1)
557df: pandn Pq,Qq | vpandn Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400558# 0x0f 0xe0-0xef
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900559e0: pavgb Pq,Qq | vpavgb Vx,Hx,Wx (66),(v1)
560e1: psraw Pq,Qq | vpsraw Vx,Hx,Wx (66),(v1)
561e2: psrad Pq,Qq | vpsrad Vx,Hx,Wx (66),(v1)
562e3: pavgw Pq,Qq | vpavgw Vx,Hx,Wx (66),(v1)
563e4: pmulhuw Pq,Qq | vpmulhuw Vx,Hx,Wx (66),(v1)
564e5: pmulhw Pq,Qq | vpmulhw Vx,Hx,Wx (66),(v1)
565e6: vcvttpd2dq Vx,Wpd (66) | vcvtdq2pd Vx,Wdq (F3) | vcvtpd2dq Vx,Wpd (F2)
566e7: movntq Mq,Pq | vmovntdq Mx,Vx (66)
567e8: psubsb Pq,Qq | vpsubsb Vx,Hx,Wx (66),(v1)
568e9: psubsw Pq,Qq | vpsubsw Vx,Hx,Wx (66),(v1)
569ea: pminsw Pq,Qq | vpminsw Vx,Hx,Wx (66),(v1)
570eb: por Pq,Qq | vpor Vx,Hx,Wx (66),(v1)
571ec: paddsb Pq,Qq | vpaddsb Vx,Hx,Wx (66),(v1)
572ed: paddsw Pq,Qq | vpaddsw Vx,Hx,Wx (66),(v1)
573ee: pmaxsw Pq,Qq | vpmaxsw Vx,Hx,Wx (66),(v1)
574ef: pxor Pq,Qq | vpxor Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400575# 0x0f 0xf0-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900576f0: vlddqu Vx,Mx (F2)
577f1: psllw Pq,Qq | vpsllw Vx,Hx,Wx (66),(v1)
578f2: pslld Pq,Qq | vpslld Vx,Hx,Wx (66),(v1)
579f3: psllq Pq,Qq | vpsllq Vx,Hx,Wx (66),(v1)
580f4: pmuludq Pq,Qq | vpmuludq Vx,Hx,Wx (66),(v1)
581f5: pmaddwd Pq,Qq | vpmaddwd Vx,Hx,Wx (66),(v1)
582f6: psadbw Pq,Qq | vpsadbw Vx,Hx,Wx (66),(v1)
583f7: maskmovq Pq,Nq | vmaskmovdqu Vx,Ux (66),(v1)
584f8: psubb Pq,Qq | vpsubb Vx,Hx,Wx (66),(v1)
585f9: psubw Pq,Qq | vpsubw Vx,Hx,Wx (66),(v1)
586fa: psubd Pq,Qq | vpsubd Vx,Hx,Wx (66),(v1)
587fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1)
588fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1)
589fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1)
590fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400591ff:
592EndTable
593
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400594Table: 3-byte opcode 1 (0x0f 0x38)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400595Referrer: 3-byte escape 1
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400596AVXcode: 2
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400597# 0x0f 0x38 0x00-0x0f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090059800: pshufb Pq,Qq | vpshufb Vx,Hx,Wx (66),(v1)
59901: phaddw Pq,Qq | vphaddw Vx,Hx,Wx (66),(v1)
60002: phaddd Pq,Qq | vphaddd Vx,Hx,Wx (66),(v1)
60103: phaddsw Pq,Qq | vphaddsw Vx,Hx,Wx (66),(v1)
60204: pmaddubsw Pq,Qq | vpmaddubsw Vx,Hx,Wx (66),(v1)
60305: phsubw Pq,Qq | vphsubw Vx,Hx,Wx (66),(v1)
60406: phsubd Pq,Qq | vphsubd Vx,Hx,Wx (66),(v1)
60507: phsubsw Pq,Qq | vphsubsw Vx,Hx,Wx (66),(v1)
60608: psignb Pq,Qq | vpsignb Vx,Hx,Wx (66),(v1)
60709: psignw Pq,Qq | vpsignw Vx,Hx,Wx (66),(v1)
6080a: psignd Pq,Qq | vpsignd Vx,Hx,Wx (66),(v1)
6090b: pmulhrsw Pq,Qq | vpmulhrsw Vx,Hx,Wx (66),(v1)
6100c: vpermilps Vx,Hx,Wx (66),(v)
6110d: vpermilpd Vx,Hx,Wx (66),(v)
6120e: vtestps Vx,Wx (66),(v)
6130f: vtestpd Vx,Wx (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400614# 0x0f 0x38 0x10-0x1f
61510: pblendvb Vdq,Wdq (66)
61611:
61712:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090061813: vcvtph2ps Vx,Wx,Ib (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040061914: blendvps Vdq,Wdq (66)
62015: blendvpd Vdq,Wdq (66)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090062116: vpermps Vqq,Hqq,Wqq (66),(v)
62217: vptest Vx,Wx (66)
62318: vbroadcastss Vx,Wd (66),(v)
62419: vbroadcastsd Vqq,Wq (66),(v)
6251a: vbroadcastf128 Vqq,Mdq (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04006261b:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09006271c: pabsb Pq,Qq | vpabsb Vx,Wx (66),(v1)
6281d: pabsw Pq,Qq | vpabsw Vx,Wx (66),(v1)
6291e: pabsd Pq,Qq | vpabsd Vx,Wx (66),(v1)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04006301f:
631# 0x0f 0x38 0x20-0x2f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090063220: vpmovsxbw Vx,Ux/Mq (66),(v1)
63321: vpmovsxbd Vx,Ux/Md (66),(v1)
63422: vpmovsxbq Vx,Ux/Mw (66),(v1)
63523: vpmovsxwd Vx,Ux/Mq (66),(v1)
63624: vpmovsxwq Vx,Ux/Md (66),(v1)
63725: vpmovsxdq Vx,Ux/Mq (66),(v1)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040063826:
63927:
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090064028: vpmuldq Vx,Hx,Wx (66),(v1)
64129: vpcmpeqq Vx,Hx,Wx (66),(v1)
6422a: vmovntdqa Vx,Mx (66),(v1)
6432b: vpackusdw Vx,Hx,Wx (66),(v1)
6442c: vmaskmovps Vx,Hx,Mx (66),(v)
6452d: vmaskmovpd Vx,Hx,Mx (66),(v)
6462e: vmaskmovps Mx,Hx,Vx (66),(v)
6472f: vmaskmovpd Mx,Hx,Vx (66),(v)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400648# 0x0f 0x38 0x30-0x3f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090064930: vpmovzxbw Vx,Ux/Mq (66),(v1)
65031: vpmovzxbd Vx,Ux/Md (66),(v1)
65132: vpmovzxbq Vx,Ux/Mw (66),(v1)
65233: vpmovzxwd Vx,Ux/Mq (66),(v1)
65334: vpmovzxwq Vx,Ux/Md (66),(v1)
65435: vpmovzxdq Vx,Ux/Mq (66),(v1)
65536: vpermd Vqq,Hqq,Wqq (66),(v)
65637: vpcmpgtq Vx,Hx,Wx (66),(v1)
65738: vpminsb Vx,Hx,Wx (66),(v1)
65839: vpminsd Vx,Hx,Wx (66),(v1)
6593a: vpminuw Vx,Hx,Wx (66),(v1)
6603b: vpminud Vx,Hx,Wx (66),(v1)
6613c: vpmaxsb Vx,Hx,Wx (66),(v1)
6623d: vpmaxsd Vx,Hx,Wx (66),(v1)
6633e: vpmaxuw Vx,Hx,Wx (66),(v1)
6643f: vpmaxud Vx,Hx,Wx (66),(v1)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400665# 0x0f 0x38 0x40-0x8f
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090066640: vpmulld Vx,Hx,Wx (66),(v1)
66741: vphminposuw Vdq,Wdq (66),(v1)
66842:
66943:
67044:
67145: vpsrlvd/q Vx,Hx,Wx (66),(v)
67246: vpsravd Vx,Hx,Wx (66),(v)
67347: vpsllvd/q Vx,Hx,Wx (66),(v)
674# Skip 0x48-0x57
67558: vpbroadcastd Vx,Wx (66),(v)
67659: vpbroadcastq Vx,Wx (66),(v)
6775a: vbroadcasti128 Vqq,Mdq (66),(v)
678# Skip 0x5b-0x77
67978: vpbroadcastb Vx,Wx (66),(v)
68079: vpbroadcastw Vx,Wx (66),(v)
681# Skip 0x7a-0x7f
68280: INVEPT Gy,Mdq (66)
68381: INVPID Gy,Mdq (66)
68482: INVPCID Gy,Mdq (66)
6858c: vpmaskmovd/q Vx,Hx,Mx (66),(v)
6868e: vpmaskmovd/q Mx,Vx,Hx (66),(v)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400687# 0x0f 0x38 0x90-0xbf (FMA)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090068890: vgatherdd/q Vx,Hx,Wx (66),(v)
68991: vgatherqd/q Vx,Hx,Wx (66),(v)
69092: vgatherdps/d Vx,Hx,Wx (66),(v)
69193: vgatherqps/d Vx,Hx,Wx (66),(v)
69294:
69395:
69496: vfmaddsub132ps/d Vx,Hx,Wx (66),(v)
69597: vfmsubadd132ps/d Vx,Hx,Wx (66),(v)
69698: vfmadd132ps/d Vx,Hx,Wx (66),(v)
69799: vfmadd132ss/d Vx,Hx,Wx (66),(v),(v1)
6989a: vfmsub132ps/d Vx,Hx,Wx (66),(v)
6999b: vfmsub132ss/d Vx,Hx,Wx (66),(v),(v1)
7009c: vfnmadd132ps/d Vx,Hx,Wx (66),(v)
7019d: vfnmadd132ss/d Vx,Hx,Wx (66),(v),(v1)
7029e: vfnmsub132ps/d Vx,Hx,Wx (66),(v)
7039f: vfnmsub132ss/d Vx,Hx,Wx (66),(v),(v1)
704a6: vfmaddsub213ps/d Vx,Hx,Wx (66),(v)
705a7: vfmsubadd213ps/d Vx,Hx,Wx (66),(v)
706a8: vfmadd213ps/d Vx,Hx,Wx (66),(v)
707a9: vfmadd213ss/d Vx,Hx,Wx (66),(v),(v1)
708aa: vfmsub213ps/d Vx,Hx,Wx (66),(v)
709ab: vfmsub213ss/d Vx,Hx,Wx (66),(v),(v1)
710ac: vfnmadd213ps/d Vx,Hx,Wx (66),(v)
711ad: vfnmadd213ss/d Vx,Hx,Wx (66),(v),(v1)
712ae: vfnmsub213ps/d Vx,Hx,Wx (66),(v)
713af: vfnmsub213ss/d Vx,Hx,Wx (66),(v),(v1)
714b6: vfmaddsub231ps/d Vx,Hx,Wx (66),(v)
715b7: vfmsubadd231ps/d Vx,Hx,Wx (66),(v)
716b8: vfmadd231ps/d Vx,Hx,Wx (66),(v)
717b9: vfmadd231ss/d Vx,Hx,Wx (66),(v),(v1)
718ba: vfmsub231ps/d Vx,Hx,Wx (66),(v)
719bb: vfmsub231ss/d Vx,Hx,Wx (66),(v),(v1)
720bc: vfnmadd231ps/d Vx,Hx,Wx (66),(v)
721bd: vfnmadd231ss/d Vx,Hx,Wx (66),(v),(v1)
722be: vfnmsub231ps/d Vx,Hx,Wx (66),(v)
723bf: vfnmsub231ss/d Vx,Hx,Wx (66),(v),(v1)
Masami Hiramatsu3f7e4542009-10-27 16:42:35 -0400724# 0x0f 0x38 0xc0-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900725db: VAESIMC Vdq,Wdq (66),(v1)
726dc: VAESENC Vdq,Hdq,Wdq (66),(v1)
727dd: VAESENCLAST Vdq,Hdq,Wdq (66),(v1)
728de: VAESDEC Vdq,Hdq,Wdq (66),(v1)
729df: VAESDECLAST Vdq,Hdq,Wdq (66),(v1)
730f0: MOVBE Gy,My | MOVBE Gw,Mw (66) | CRC32 Gd,Eb (F2)
731f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2)
732f3: ANDN Gy,By,Ey (v)
733f4: Grp17 (1A)
734f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
735f6: MULX By,Gy,rDX,Ey (F2),(v)
736f7: 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 -0400737EndTable
738
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400739Table: 3-byte opcode 2 (0x0f 0x3a)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400740Referrer: 3-byte escape 2
Masami Hiramatsue0e492e2009-10-27 16:42:27 -0400741AVXcode: 3
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400742# 0x0f 0x3a 0x00-0xff
Masami Hiramatsua9c373d2011-12-05 21:05:57 +090074300: vpermq Vqq,Wqq,Ib (66),(v)
74401: vpermpd Vqq,Wqq,Ib (66),(v)
74502: vpblendd Vx,Hx,Wx,Ib (66),(v)
74603:
74704: vpermilps Vx,Wx,Ib (66),(v)
74805: vpermilpd Vx,Wx,Ib (66),(v)
74906: vperm2f128 Vqq,Hqq,Wqq,Ib (66),(v)
75007:
75108: vroundps Vx,Wx,Ib (66)
75209: vroundpd Vx,Wx,Ib (66)
7530a: vroundss Vss,Wss,Ib (66),(v1)
7540b: vroundsd Vsd,Wsd,Ib (66),(v1)
7550c: vblendps Vx,Hx,Wx,Ib (66)
7560d: vblendpd Vx,Hx,Wx,Ib (66)
7570e: vpblendw Vx,Hx,Wx,Ib (66),(v1)
7580f: palignr Pq,Qq,Ib | vpalignr Vx,Hx,Wx,Ib (66),(v1)
75914: vpextrb Rd/Mb,Vdq,Ib (66),(v1)
76015: vpextrw Rd/Mw,Vdq,Ib (66),(v1)
76116: vpextrd/q Ey,Vdq,Ib (66),(v1)
76217: vextractps Ed,Vdq,Ib (66),(v1)
76318: vinsertf128 Vqq,Hqq,Wqq,Ib (66),(v)
76419: vextractf128 Wdq,Vqq,Ib (66),(v)
7651d: vcvtps2ph Wx,Vx,Ib (66),(v)
76620: vpinsrb Vdq,Hdq,Ry/Mb,Ib (66),(v1)
76721: vinsertps Vdq,Hdq,Udq/Md,Ib (66),(v1)
76822: vpinsrd/q Vdq,Hdq,Ey,Ib (66),(v1)
76938: vinserti128 Vqq,Hqq,Wqq,Ib (66),(v)
77039: vextracti128 Wdq,Vqq,Ib (66),(v)
77140: vdpps Vx,Hx,Wx,Ib (66)
77241: vdppd Vdq,Hdq,Wdq,Ib (66),(v1)
77342: vmpsadbw Vx,Hx,Wx,Ib (66),(v1)
77444: vpclmulqdq Vdq,Hdq,Wdq,Ib (66),(v1)
77546: vperm2i128 Vqq,Hqq,Wqq,Ib (66),(v)
7764a: vblendvps Vx,Hx,Wx,Lx (66),(v)
7774b: vblendvpd Vx,Hx,Wx,Lx (66),(v)
7784c: vpblendvb Vx,Hx,Wx,Lx (66),(v1)
77960: vpcmpestrm Vdq,Wdq,Ib (66),(v1)
78061: vpcmpestri Vdq,Wdq,Ib (66),(v1)
78162: vpcmpistrm Vdq,Wdq,Ib (66),(v1)
78263: vpcmpistri Vdq,Wdq,Ib (66),(v1)
783df: VAESKEYGEN Vdq,Wdq,Ib (66),(v1)
784f0: RORX Gy,Ey,Ib (F2),(v)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400785EndTable
786
787GrpTable: Grp1
7880: ADD
7891: OR
7902: ADC
7913: SBB
7924: AND
7935: SUB
7946: XOR
7957: CMP
796EndTable
797
798GrpTable: Grp1A
7990: POP
800EndTable
801
802GrpTable: Grp2
8030: ROL
8041: ROR
8052: RCL
8063: RCR
8074: SHL/SAL
8085: SHR
8096:
8107: SAR
811EndTable
812
813GrpTable: Grp3_1
8140: TEST Eb,Ib
8151:
8162: NOT Eb
8173: NEG Eb
8184: MUL AL,Eb
8195: IMUL AL,Eb
8206: DIV AL,Eb
8217: IDIV AL,Eb
822EndTable
823
824GrpTable: Grp3_2
8250: TEST Ev,Iz
8261:
8272: NOT Ev
8283: NEG Ev
8294: MUL rAX,Ev
8305: IMUL rAX,Ev
8316: DIV rAX,Ev
8327: IDIV rAX,Ev
833EndTable
834
835GrpTable: Grp4
8360: INC Eb
8371: DEC Eb
838EndTable
839
840GrpTable: Grp5
8410: INC Ev
8421: DEC Ev
8432: CALLN Ev (f64)
8443: CALLF Ep
8454: JMPN Ev (f64)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008465: JMPF Mp
Masami Hiramatsueb132962009-08-13 16:34:13 -04008476: PUSH Ev (d64)
8487:
849EndTable
850
851GrpTable: Grp6
8520: SLDT Rv/Mw
8531: STR Rv/Mw
8542: LLDT Ew
8553: LTR Ew
8564: VERR Ew
8575: VERW Ew
858EndTable
859
860GrpTable: Grp7
8610: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B)
8621: SIDT Ms | MONITOR (000),(11B) | MWAIT (001)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008632: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04008643: LIDT Ms
8654: SMSW Mw/Rv
8665:
8676: LMSW Ew
8687: INVLPG Mb | SWAPGS (o64),(000),(11B) | RDTSCP (001),(11B)
869EndTable
870
871GrpTable: Grp8
8724: BT
8735: BTS
8746: BTR
8757: BTC
876EndTable
877
878GrpTable: Grp9
8791: CMPXCHG8B/16B Mq/Mdq
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008806: VMPTRLD Mq | VMCLEAR Mq (66) | VMXON Mq (F3) | RDRAND Rv (11B)
8817: VMPTRST Mq | VMPTRST Mq (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400882EndTable
883
884GrpTable: Grp10
885EndTable
886
887GrpTable: Grp11
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900888# Note: the operands are given by group opcode
Masami Hiramatsueb132962009-08-13 16:34:13 -04008890: MOV
890EndTable
891
892GrpTable: Grp12
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008932: psrlw Nq,Ib (11B) | vpsrlw Hx,Ux,Ib (66),(11B),(v1)
8944: psraw Nq,Ib (11B) | vpsraw Hx,Ux,Ib (66),(11B),(v1)
8956: psllw Nq,Ib (11B) | vpsllw Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400896EndTable
897
898GrpTable: Grp13
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09008992: psrld Nq,Ib (11B) | vpsrld Hx,Ux,Ib (66),(11B),(v1)
9004: psrad Nq,Ib (11B) | vpsrad Hx,Ux,Ib (66),(11B),(v1)
9016: pslld Nq,Ib (11B) | vpslld Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400902EndTable
903
904GrpTable: Grp14
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009052: psrlq Nq,Ib (11B) | vpsrlq Hx,Ux,Ib (66),(11B),(v1)
9063: vpsrldq Hx,Ux,Ib (66),(11B),(v1)
9076: psllq Nq,Ib (11B) | vpsllq Hx,Ux,Ib (66),(11B),(v1)
9087: vpslldq Hx,Ux,Ib (66),(11B),(v1)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400909EndTable
910
911GrpTable: Grp15
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009120: fxsave | RDFSBASE Ry (F3),(11B)
9131: fxstor | RDGSBASE Ry (F3),(11B)
9142: vldmxcsr Md (v1) | WRFSBASE Ry (F3),(11B)
9153: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009164: XSAVE
9175: XRSTOR | lfence (11B)
Masami Hiramatsua9c373d2011-12-05 21:05:57 +09009186: XSAVEOPT | mfence (11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -04009197: clflush | sfence (11B)
920EndTable
921
922GrpTable: Grp16
9230: prefetch NTA
9241: prefetch T0
9252: prefetch T1
9263: prefetch T2
927EndTable
928
Masami Hiramatsua9c373d2011-12-05 21:05:57 +0900929GrpTable: Grp17
9301: BLSR By,Ey (v)
9312: BLSMSK By,Ey (v)
9323: BLSI By,Ey (v)
933EndTable
934
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -0400935# AMD's Prefetch Group
936GrpTable: GrpP
9370: PREFETCH
9381: PREFETCHW
939EndTable
940
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700941GrpTable: GrpPDLK
9420: MONTMUL
9431: XSHA1
9442: XSHA2
945EndTable
946
Masami Hiramatsueb132962009-08-13 16:34:13 -0400947GrpTable: GrpRNG
9480: xstore-rng
9491: xcrypt-ecb
9502: xcrypt-cbc
9514: xcrypt-cfb
9525: xcrypt-ofb
953EndTable