blob: 701c4678687b6506cdfba4e9b364523dd21c7849 [file] [log] [blame]
Masami Hiramatsueb132962009-08-13 16:34:13 -04001# x86 Opcode Maps
2#
3#<Opcode maps>
4# Table: table-name
5# Referrer: escaped-name
6# opcode: mnemonic|GrpXXX [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
7# (or)
8# opcode: escape # escaped-name
9# EndTable
10#
11#<group maps>
12# GrpTable: GrpXXX
13# reg: mnemonic [operand1[,operand2...]] [(extra1)[,(extra2)...] [| 2nd-mnemonic ...]
14# EndTable
15#
16
17Table: one byte opcode
18Referrer:
19# 0x00 - 0x0f
2000: ADD Eb,Gb
2101: ADD Ev,Gv
2202: ADD Gb,Eb
2303: ADD Gv,Ev
2404: ADD AL,Ib
2505: ADD rAX,Iz
2606: PUSH ES (i64)
2707: POP ES (i64)
2808: OR Eb,Gb
2909: OR Ev,Gv
300a: OR Gb,Eb
310b: OR Gv,Ev
320c: OR AL,Ib
330d: OR rAX,Iz
340e: PUSH CS (i64)
350f: escape # 2-byte escape
36# 0x10 - 0x1f
3710: ADC Eb,Gb
3811: ADC Ev,Gv
3912: ADC Gb,Eb
4013: ADC Gv,Ev
4114: ADC AL,Ib
4215: ADC rAX,Iz
4316: PUSH SS (i64)
4417: POP SS (i64)
4518: SBB Eb,Gb
4619: SBB Ev,Gv
471a: SBB Gb,Eb
481b: SBB Gv,Ev
491c: SBB AL,Ib
501d: SBB rAX,Iz
511e: PUSH DS (i64)
521f: POP DS (i64)
53# 0x20 - 0x2f
5420: AND Eb,Gb
5521: AND Ev,Gv
5622: AND Gb,Eb
5723: AND Gv,Ev
5824: AND AL,Ib
5925: AND rAx,Iz
6026: SEG=ES (Prefix)
6127: DAA (i64)
6228: SUB Eb,Gb
6329: SUB Ev,Gv
642a: SUB Gb,Eb
652b: SUB Gv,Ev
662c: SUB AL,Ib
672d: SUB rAX,Iz
682e: SEG=CS (Prefix)
692f: DAS (i64)
70# 0x30 - 0x3f
7130: XOR Eb,Gb
7231: XOR Ev,Gv
7332: XOR Gb,Eb
7433: XOR Gv,Ev
7534: XOR AL,Ib
7635: XOR rAX,Iz
7736: SEG=SS (Prefix)
7837: AAA (i64)
7938: CMP Eb,Gb
8039: CMP Ev,Gv
813a: CMP Gb,Eb
823b: CMP Gv,Ev
833c: CMP AL,Ib
843d: CMP rAX,Iz
853e: SEG=DS (Prefix)
863f: AAS (i64)
87# 0x40 - 0x4f
8840: INC eAX (i64) | REX (o64)
8941: INC eCX (i64) | REX.B (o64)
9042: INC eDX (i64) | REX.X (o64)
9143: INC eBX (i64) | REX.XB (o64)
9244: INC eSP (i64) | REX.R (o64)
9345: INC eBP (i64) | REX.RB (o64)
9446: INC eSI (i64) | REX.RX (o64)
9547: INC eDI (i64) | REX.RXB (o64)
9648: DEC eAX (i64) | REX.W (o64)
9749: DEC eCX (i64) | REX.WB (o64)
984a: DEC eDX (i64) | REX.WX (o64)
994b: DEC eBX (i64) | REX.WXB (o64)
1004c: DEC eSP (i64) | REX.WR (o64)
1014d: DEC eBP (i64) | REX.WRB (o64)
1024e: DEC eSI (i64) | REX.WRX (o64)
1034f: DEC eDI (i64) | REX.WRXB (o64)
104# 0x50 - 0x5f
10550: PUSH rAX/r8 (d64)
10651: PUSH rCX/r9 (d64)
10752: PUSH rDX/r10 (d64)
10853: PUSH rBX/r11 (d64)
10954: PUSH rSP/r12 (d64)
11055: PUSH rBP/r13 (d64)
11156: PUSH rSI/r14 (d64)
11257: PUSH rDI/r15 (d64)
11358: POP rAX/r8 (d64)
11459: POP rCX/r9 (d64)
1155a: POP rDX/r10 (d64)
1165b: POP rBX/r11 (d64)
1175c: POP rSP/r12 (d64)
1185d: POP rBP/r13 (d64)
1195e: POP rSI/r14 (d64)
1205f: POP rDI/r15 (d64)
121# 0x60 - 0x6f
12260: PUSHA/PUSHAD (i64)
12361: POPA/POPAD (i64)
12462: BOUND Gv,Ma (i64)
12563: ARPL Ew,Gw (i64) | MOVSXD Gv,Ev (o64)
12664: SEG=FS (Prefix)
12765: SEG=GS (Prefix)
12866: Operand-Size (Prefix)
12967: Address-Size (Prefix)
13068: PUSH Iz (d64)
13169: IMUL Gv,Ev,Iz
1326a: PUSH Ib (d64)
1336b: IMUL Gv,Ev,Ib
1346c: INS/INSB Yb,DX
1356d: INS/INSW/INSD Yz,DX
1366e: OUTS/OUTSB DX,Xb
1376f: OUTS/OUTSW/OUTSD DX,Xz
138# 0x70 - 0x7f
13970: JO Jb
14071: JNO Jb
14172: JB/JNAE/JC Jb
14273: JNB/JAE/JNC Jb
14374: JZ/JE Jb
14475: JNZ/JNE Jb
14576: JBE/JNA Jb
14677: JNBE/JA Jb
14778: JS Jb
14879: JNS Jb
1497a: JP/JPE Jb
1507b: JNP/JPO Jb
1517c: JL/JNGE Jb
1527d: JNL/JGE Jb
1537e: JLE/JNG Jb
1547f: JNLE/JG Jb
155# 0x80 - 0x8f
15680: Grp1 Eb,Ib (1A)
15781: Grp1 Ev,Iz (1A)
15882: Grp1 Eb,Ib (1A),(i64)
15983: Grp1 Ev,Ib (1A)
16084: TEST Eb,Gb
16185: TEST Ev,Gv
16286: XCHG Eb,Gb
16387: XCHG Ev,Gv
16488: MOV Eb,Gb
16589: MOV Ev,Gv
1668a: MOV Gb,Eb
1678b: MOV Gv,Ev
1688c: MOV Ev,Sw
1698d: LEA Gv,M
1708e: MOV Sw,Ew
1718f: Grp1A (1A) | POP Ev (d64)
172# 0x90 - 0x9f
17390: NOP | PAUSE (F3) | XCHG r8,rAX
17491: XCHG rCX/r9,rAX
17592: XCHG rDX/r10,rAX
17693: XCHG rBX/r11,rAX
17794: XCHG rSP/r12,rAX
17895: XCHG rBP/r13,rAX
17996: XCHG rSI/r14,rAX
18097: XCHG rDI/r15,rAX
18198: CBW/CWDE/CDQE
18299: CWD/CDQ/CQO
1839a: CALLF Ap (i64)
1849b: FWAIT/WAIT
1859c: PUSHF/D/Q Fv (d64)
1869d: POPF/D/Q Fv (d64)
1879e: SAHF
1889f: LAHF
189# 0xa0 - 0xaf
190a0: MOV AL,Ob
191a1: MOV rAX,Ov
192a2: MOV Ob,AL
193a3: MOV Ov,rAX
194a4: MOVS/B Xb,Yb
195a5: MOVS/W/D/Q Xv,Yv
196a6: CMPS/B Xb,Yb
197a7: CMPS/W/D Xv,Yv
198a8: TEST AL,Ib
199a9: TEST rAX,Iz
200aa: STOS/B Yb,AL
201ab: STOS/W/D/Q Yv,rAX
202ac: LODS/B AL,Xb
203ad: LODS/W/D/Q rAX,Xv
204ae: SCAS/B AL,Yb
205af: SCAS/W/D/Q rAX,Xv
206# 0xb0 - 0xbf
207b0: MOV AL/R8L,Ib
208b1: MOV CL/R9L,Ib
209b2: MOV DL/R10L,Ib
210b3: MOV BL/R11L,Ib
211b4: MOV AH/R12L,Ib
212b5: MOV CH/R13L,Ib
213b6: MOV DH/R14L,Ib
214b7: MOV BH/R15L,Ib
215b8: MOV rAX/r8,Iv
216b9: MOV rCX/r9,Iv
217ba: MOV rDX/r10,Iv
218bb: MOV rBX/r11,Iv
219bc: MOV rSP/r12,Iv
220bd: MOV rBP/r13,Iv
221be: MOV rSI/r14,Iv
222bf: MOV rDI/r15,Iv
223# 0xc0 - 0xcf
224c0: Grp2 Eb,Ib (1A)
225c1: Grp2 Ev,Ib (1A)
226c2: RETN Iw (f64)
227c3: RETN
228c4: LES Gz,Mp (i64)
229c5: LDS Gz,Mp (i64)
230c6: Grp11 Eb,Ib (1A)
231c7: Grp11 Ev,Iz (1A)
232c8: ENTER Iw,Ib
233c9: LEAVE (d64)
234ca: RETF Iw
235cb: RETF
236cc: INT3
237cd: INT Ib
238ce: INTO (i64)
239cf: IRET/D/Q
240# 0xd0 - 0xdf
241d0: Grp2 Eb,1 (1A)
242d1: Grp2 Ev,1 (1A)
243d2: Grp2 Eb,CL (1A)
244d3: Grp2 Ev,CL (1A)
245d4: AAM Ib (i64)
246d5: AAD Ib (i64)
247d6:
248d7: XLAT/XLATB
249d8: ESC
250d9: ESC
251da: ESC
252db: ESC
253dc: ESC
254dd: ESC
255de: ESC
256df: ESC
257# 0xe0 - 0xef
258e0: LOOPNE/LOOPNZ Jb (f64)
259e1: LOOPE/LOOPZ Jb (f64)
260e2: LOOP Jb (f64)
261e3: JrCXZ Jb (f64)
262e4: IN AL,Ib
263e5: IN eAX,Ib
264e6: OUT Ib,AL
265e7: OUT Ib,eAX
266e8: CALL Jz (f64)
267e9: JMP-near Jz (f64)
268ea: JMP-far Ap (i64)
269eb: JMP-short Jb (f64)
270ec: IN AL,DX
271ed: IN eAX,DX
272ee: OUT DX,AL
273ef: OUT DX,eAX
274# 0xf0 - 0xff
275f0: LOCK (Prefix)
276f1:
277f2: REPNE (Prefix)
278f3: REP/REPE (Prefix)
279f4: HLT
280f5: CMC
281f6: Grp3_1 Eb (1A)
282f7: Grp3_2 Ev (1A)
283f8: CLC
284f9: STC
285fa: CLI
286fb: STI
287fc: CLD
288fd: STD
289fe: Grp4 (1A)
290ff: Grp5 (1A)
291EndTable
292
293Table: 2-byte opcode # First Byte is 0x0f
294Referrer: 2-byte escape
295# 0x0f 0x00-0x0f
29600: Grp6 (1A)
29701: Grp7 (1A)
29802: LAR Gv,Ew
29903: LSL Gv,Ew
30004:
30105: SYSCALL (o64)
30206: CLTS
30307: SYSRET (o64)
30408: INVD
30509: WBINVD
3060a:
3070b: UD2 (1B)
3080c:
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -04003090d: NOP Ev | GrpP
3100e: FEMMS
311# 3DNow! uses the last imm byte as opcode extension.
3120f: 3DNow! Pq,Qq,Ib
Masami Hiramatsueb132962009-08-13 16:34:13 -0400313# 0x0f 0x10-0x1f
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040031410: movups Vps,Wps | movss Vss,Wss (F3) | movupd Vpd,Wpd (66) | movsd Vsd,Wsd (F2)
31511: movups Wps,Vps | movss Wss,Vss (F3) | movupd Wpd,Vpd (66) | movsd Wsd,Vsd (F2)
31612: movlps Vq,Mq | movlpd Vq,Mq (66) | movhlps Vq,Uq | movddup Vq,Wq (F2) | movsldup Vq,Wq (F3)
31713: mpvlps Mq,Vq | movlpd Mq,Vq (66)
31814: unpcklps Vps,Wq | unpcklpd Vpd,Wq (66)
31915: unpckhps Vps,Wq | unpckhpd Vpd,Wq (66)
32016: movhps Vq,Mq | movhpd Vq,Mq (66) | movlsps Vq,Uq | movshdup Vq,Wq (F3)
32117: movhps Mq,Vq | movhpd Mq,Vq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -040032218: Grp16 (1A)
32319:
3241a:
3251b:
3261c:
3271d:
3281e:
3291f: NOP Ev
330# 0x0f 0x20-0x2f
33120: MOV Rd,Cd
33221: MOV Rd,Dd
33322: MOV Cd,Rd
33423: MOV Dd,Rd
33524:
33625:
33726:
33827:
33928: movaps Vps,Wps | movapd Vpd,Wpd (66)
34029: movaps Wps,Vps | movapd Wpd,Vpd (66)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04003412a: cvtpi2ps Vps,Qpi | cvtsi2ss Vss,Ed/q (F3) | cvtpi2pd Vpd,Qpi (66) | cvtsi2sd Vsd,Ed/q (F2)
3422b: movntps Mps,Vps | movntpd Mpd,Vpd (66)
3432c: cvttps2pi Ppi,Wps | cvttss2si Gd/q,Wss (F3) | cvttpd2pi Ppi,Wpd (66) | cvttsd2si Gd/q,Wsd (F2)
3442d: cvtps2pi Ppi,Wps | cvtss2si Gd/q,Wss (F3) | cvtpd2pi Qpi,Wpd (66) | cvtsd2si Gd/q,Wsd (F2)
3452e: ucomiss Vss,Wss | ucomisd Vsd,Wsd (66)
3462f: comiss Vss,Wss | comisd Vsd,Wsd (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400347# 0x0f 0x30-0x3f
34830: WRMSR
34931: RDTSC
35032: RDMSR
35133: RDPMC
35234: SYSENTER
35335: SYSEXIT
35436:
35537: GETSEC
35638: escape # 3-byte escape 1
35739:
3583a: escape # 3-byte escape 2
3593b:
3603c:
3613d:
3623e:
3633f:
364# 0x0f 0x40-0x4f
36540: CMOVO Gv,Ev
36641: CMOVNO Gv,Ev
36742: CMOVB/C/NAE Gv,Ev
36843: CMOVAE/NB/NC Gv,Ev
36944: CMOVE/Z Gv,Ev
37045: CMOVNE/NZ Gv,Ev
37146: CMOVBE/NA Gv,Ev
37247: CMOVA/NBE Gv,Ev
37348: CMOVS Gv,Ev
37449: CMOVNS Gv,Ev
3754a: CMOVP/PE Gv,Ev
3764b: CMOVNP/PO Gv,Ev
3774c: CMOVL/NGE Gv,Ev
3784d: CMOVNL/GE Gv,Ev
3794e: CMOVLE/NG Gv,Ev
3804f: CMOVNLE/G Gv,Ev
381# 0x0f 0x50-0x5f
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040038250: movmskps Gd/q,Ups | movmskpd Gd/q,Upd (66)
38351: sqrtps Vps,Wps | sqrtss Vss,Wss (F3) | sqrtpd Vpd,Wpd (66) | sqrtsd Vsd,Wsd (F2)
38452: rsqrtps Vps,Wps | rsqrtss Vss,Wss (F3)
38553: rcpps Vps,Wps | rcpss Vss,Wss (F3)
38654: andps Vps,Wps | andpd Vpd,Wpd (66)
38755: andnps Vps,Wps | andnpd Vpd,Wpd (66)
38856: orps Vps,Wps | orpd Vpd,Wpd (66)
38957: xorps Vps,Wps | xorpd Vpd,Wpd (66)
39058: addps Vps,Wps | addss Vss,Wss (F3) | addpd Vpd,Wpd (66) | addsd Vsd,Wsd (F2)
39159: mulps Vps,Wps | mulss Vss,Wss (F3) | mulpd Vpd,Wpd (66) | mulsd Vsd,Wsd (F2)
3925a: cvtps2pd Vpd,Wps | cvtss2sd Vsd,Wss (F3) | cvtpd2ps Vps,Wpd (66) | cvtsd2ss Vsd,Wsd (F2)
3935b: cvtdq2ps Vps,Wdq | cvtps2dq Vdq,Wps (66) | cvttps2dq Vdq,Wps (F3)
3945c: subps Vps,Wps | subss Vss,Wss (F3) | subpd Vpd,Wpd (66) | subsd Vsd,Wsd (F2)
3955d: minps Vps,Wps | minss Vss,Wss (F3) | minpd Vpd,Wpd (66) | minsd Vsd,Wsd (F2)
3965e: divps Vps,Wps | divss Vss,Wss (F3) | divpd Vpd,Wpd (66) | divsd Vsd,Wsd (F2)
3975f: maxps Vps,Wps | maxss Vss,Wss (F3) | maxpd Vpd,Wpd (66) | maxsd Vsd,Wsd (F2)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400398# 0x0f 0x60-0x6f
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040039960: punpcklbw Pq,Qd | punpcklbw Vdq,Wdq (66)
40061: punpcklwd Pq,Qd | punpcklwd Vdq,Wdq (66)
40162: punpckldq Pq,Qd | punpckldq Vdq,Wdq (66)
40263: packsswb Pq,Qq | packsswb Vdq,Wdq (66)
40364: pcmpgtb Pq,Qq | pcmpgtb Vdq,Wdq (66)
40465: pcmpgtw Pq,Qq | pcmpgtw(66) Vdq,Wdq
40566: pcmpgtd Pq,Qq | pcmpgtd Vdq,Wdq (66)
40667: packuswb Pq,Qq | packuswb(66) Vdq,Wdq
40768: punpckhbw Pq,Qd | punpckhbw Vdq,Wdq (66)
40869: punpckhwd Pq,Qd | punpckhwd Vdq,Wdq (66)
4096a: punpckhdq Pq,Qd | punpckhdq Vdq,Wdq (66)
4106b: packssdw Pq,Qd | packssdw Vdq,Wdq (66)
4116c: punpcklqdq Vdq,Wdq (66)
4126d: punpckhqdq Vdq,Wdq (66)
4136e: movd/q/ Pd,Ed/q | movd/q Vdq,Ed/q (66)
4146f: movq Pq,Qq | movdqa Vdq,Wdq (66) | movdqu Vdq,Wdq (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400415# 0x0f 0x70-0x7f
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040041670: pshufw Pq,Qq,Ib | pshufd Vdq,Wdq,Ib (66) | pshufhw Vdq,Wdq,Ib (F3) | pshuflw VdqWdq,Ib (F2)
Masami Hiramatsueb132962009-08-13 16:34:13 -040041771: Grp12 (1A)
41872: Grp13 (1A)
41973: Grp14 (1A)
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -040042074: pcmpeqb Pq,Qq | pcmpeqb Vdq,Wdq (66)
42175: pcmpeqw Pq,Qq | pcmpeqw Vdq,Wdq (66)
42276: pcmpeqd Pq,Qq | pcmpeqd Vdq,Wdq (66)
42377: emms
Masami Hiramatsueb132962009-08-13 16:34:13 -040042478: VMREAD Ed/q,Gd/q
42579: VMWRITE Gd/q,Ed/q
4267a:
4277b:
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -04004287c: haddps(F2) Vps,Wps | haddpd(66) Vpd,Wpd
4297d: hsubps(F2) Vps,Wps | hsubpd(66) Vpd,Wpd
4307e: movd/q Ed/q,Pd | movd/q Ed/q,Vdq (66) | movq Vq,Wq (F3)
4317f: movq Qq,Pq | movdqa Wdq,Vdq (66) | movdqu Wdq,Vdq (F3)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400432# 0x0f 0x80-0x8f
43380: JO Jz (f64)
43481: JNO Jz (f64)
43582: JB/JNAE/JC Jz (f64)
43683: JNB/JAE/JNC Jz (f64)
43784: JZ/JE Jz (f64)
43885: JNZ/JNE Jz (f64)
43986: JBE/JNA Jz (f64)
44087: JNBE/JA Jz (f64)
44188: JS Jz (f64)
44289: JNS Jz (f64)
4438a: JP/JPE Jz (f64)
4448b: JNP/JPO Jz (f64)
4458c: JL/JNGE Jz (f64)
4468d: JNL/JGE Jz (f64)
4478e: JLE/JNG Jz (f64)
4488f: JNLE/JG Jz (f64)
449# 0x0f 0x90-0x9f
45090: SETO Eb
45191: SETNO Eb
45292: SETB/C/NAE Eb
45393: SETAE/NB/NC Eb
45494: SETE/Z Eb
45595: SETNE/NZ Eb
45696: SETBE/NA Eb
45797: SETA/NBE Eb
45898: SETS Eb
45999: SETNS Eb
4609a: SETP/PE Eb
4619b: SETNP/PO Eb
4629c: SETL/NGE Eb
4639d: SETNL/GE Eb
4649e: SETLE/NG Eb
4659f: SETNLE/G Eb
466# 0x0f 0xa0-0xaf
467a0: PUSH FS (d64)
468a1: POP FS (d64)
469a2: CPUID
470a3: BT Ev,Gv
471a4: SHLD Ev,Gv,Ib
472a5: SHLD Ev,Gv,CL
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700473a6: GrpPDLK
Masami Hiramatsueb132962009-08-13 16:34:13 -0400474a7: GrpRNG
475a8: PUSH GS (d64)
476a9: POP GS (d64)
477aa: RSM
478ab: BTS Ev,Gv
479ac: SHRD Ev,Gv,Ib
480ad: SHRD Ev,Gv,CL
481ae: Grp15 (1A),(1C)
482af: IMUL Gv,Ev
483# 0x0f 0xb0-0xbf
484b0: CMPXCHG Eb,Gb
485b1: CMPXCHG Ev,Gv
486b2: LSS Gv,Mp
487b3: BTR Ev,Gv
488b4: LFS Gv,Mp
489b5: LGS Gv,Mp
490b6: MOVZX Gv,Eb
491b7: MOVZX Gv,Ew
492b8: JMPE | POPCNT Gv,Ev (F3)
493b9: Grp10 (1A)
494ba: Grp8 Ev,Ib (1A)
495bb: BTC Ev,Gv
496bc: BSF Gv,Ev
497bd: BSR Gv,Ev
498be: MOVSX Gv,Eb
499bf: MOVSX Gv,Ew
500# 0x0f 0xc0-0xcf
501c0: XADD Eb,Gb
502c1: XADD Ev,Gv
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400503c2: cmpps Vps,Wps,Ib | cmpss Vss,Wss,Ib (F3) | cmppd Vpd,Wpd,Ib (66) | cmpsd Vsd,Wsd,Ib (F2)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400504c3: movnti Md/q,Gd/q
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400505c4: pinsrw Pq,Rd/q/Mw,Ib | pinsrw Vdq,Rd/q/Mw,Ib (66)
506c5: pextrw Gd,Nq,Ib | pextrw Gd,Udq,Ib (66)
507c6: shufps Vps,Wps,Ib | shufpd Vpd,Wpd,Ib (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400508c7: Grp9 (1A)
509c8: BSWAP RAX/EAX/R8/R8D
510c9: BSWAP RCX/ECX/R9/R9D
511ca: BSWAP RDX/EDX/R10/R10D
512cb: BSWAP RBX/EBX/R11/R11D
513cc: BSWAP RSP/ESP/R12/R12D
514cd: BSWAP RBP/EBP/R13/R13D
515ce: BSWAP RSI/ESI/R14/R14D
516cf: BSWAP RDI/EDI/R15/R15D
517# 0x0f 0xd0-0xdf
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400518d0: addsubps Vps,Wps (F2) | addsubpd Vpd,Wpd (66)
519d1: psrlw Pq,Qq | psrlw Vdq,Wdq (66)
520d2: psrld Pq,Qq | psrld Vdq,Wdq (66)
521d3: psrlq Pq,Qq | psrlq Vdq,Wdq (66)
522d4: paddq Pq,Qq | paddq Vdq,Wdq (66)
523d5: pmullw Pq,Qq | pmullw Vdq,Wdq (66)
524d6: movq Wq,Vq (66) | movq2dq Vdq,Nq (F3) | movdq2q Pq,Uq (F2)
525d7: pmovmskb Gd,Nq | pmovmskb Gd,Udq (66)
526d8: psubusb Pq,Qq | psubusb Vdq,Wdq (66)
527d9: psubusw Pq,Qq | psubusw Vdq,Wdq (66)
528da: pminub Pq,Qq | pminub Vdq,Wdq (66)
529db: pand Pq,Qq | pand Vdq,Wdq (66)
530dc: paddusb Pq,Qq | paddusb Vdq,Wdq (66)
531dd: paddusw Pq,Qq | paddusw Vdq,Wdq (66)
532de: pmaxub Pq,Qq | pmaxub Vdq,Wdq (66)
533df: pandn Pq,Qq | pandn Vdq,Wdq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400534# 0x0f 0xe0-0xef
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400535e0: pavgb Pq,Qq | pavgb Vdq,Wdq (66)
536e1: psraw Pq,Qq | psraw Vdq,Wdq (66)
537e2: psrad Pq,Qq | psrad Vdq,Wdq (66)
538e3: pavgw Pq,Qq | pavgw Vdq,Wdq (66)
539e4: pmulhuw Pq,Qq | pmulhuw Vdq,Wdq (66)
540e5: pmulhw Pq,Qq | pmulhw Vdq,Wdq (66)
541e6: cvtpd2dq Vdq,Wpd (F2) | cvttpd2dq Vdq,Wpd (66) | cvtdq2pd Vpd,Wdq (F3)
542e7: movntq Mq,Pq | movntdq Mdq,Vdq (66)
543e8: psubsb Pq,Qq | psubsb Vdq,Wdq (66)
544e9: psubsw Pq,Qq | psubsw Vdq,Wdq (66)
545ea: pminsw Pq,Qq | pminsw Vdq,Wdq (66)
546eb: por Pq,Qq | por Vdq,Wdq (66)
547ec: paddsb Pq,Qq | paddsb Vdq,Wdq (66)
548ed: paddsw Pq,Qq | paddsw Vdq,Wdq (66)
549ee: pmaxsw Pq,Qq | pmaxsw Vdq,Wdq (66)
550ef: pxor Pq,Qq | pxor Vdq,Wdq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400551# 0x0f 0xf0-0xff
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400552f0: lddqu Vdq,Mdq (F2)
553f1: psllw Pq,Qq | psllw Vdq,Wdq (66)
554f2: pslld Pq,Qq | pslld Vdq,Wdq (66)
555f3: psllq Pq,Qq | psllq Vdq,Wdq (66)
556f4: pmuludq Pq,Qq | pmuludq Vdq,Wdq (66)
557f5: pmaddwd Pq,Qq | pmaddwd Vdq,Wdq (66)
558f6: psadbw Pq,Qq | psadbw Vdq,Wdq (66)
559f7: maskmovq Pq,Nq | maskmovdqu Vdq,Udq (66)
560f8: psubb Pq,Qq | psubb Vdq,Wdq (66)
561f9: psubw Pq,Qq | psubw Vdq,Wdq (66)
562fa: psubd Pq,Qq | psubd Vdq,Wdq (66)
563fb: psubq Pq,Qq | psubq Vdq,Wdq (66)
564fc: paddb Pq,Qq | paddb Vdq,Wdq (66)
565fd: paddw Pq,Qq | paddw Vdq,Wdq (66)
566fe: paddd Pq,Qq | paddd Vdq,Wdq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400567ff:
568EndTable
569
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400570Table: 3-byte opcode 1 (0x0f 0x38)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400571Referrer: 3-byte escape 1
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400572# 0x0f 0x38 0x00-0x0f
57300: pshufb Pq,Qq | pshufb Vdq,Wdq (66)
57401: phaddw Pq,Qq | phaddw Vdq,Wdq (66)
57502: phaddd Pq,Qq | phaddd Vdq,Wdq (66)
57603: phaddsw Pq,Qq | phaddsw Vdq,Wdq (66)
57704: pmaddubsw Pq,Qq | pmaddubsw (66)Vdq,Wdq
57805: phsubw Pq,Qq | phsubw Vdq,Wdq (66)
57906: phsubd Pq,Qq | phsubd Vdq,Wdq (66)
58007: phsubsw Pq,Qq | phsubsw Vdq,Wdq (66)
58108: psignb Pq,Qq | psignb Vdq,Wdq (66)
58209: psignw Pq,Qq | psignw Vdq,Wdq (66)
5830a: psignd Pq,Qq | psignd Vdq,Wdq (66)
5840b: pmulhrsw Pq,Qq | pmulhrsw Vdq,Wdq (66)
5850c:
5860d:
5870e:
5880f:
589# 0x0f 0x38 0x10-0x1f
59010: pblendvb Vdq,Wdq (66)
59111:
59212:
59313:
59414: blendvps Vdq,Wdq (66)
59515: blendvpd Vdq,Wdq (66)
59616:
59717: ptest Vdq,Wdq (66)
59818:
59919:
6001a:
6011b:
6021c: pabsb Pq,Qq | pabsb Vdq,Wdq (66)
6031d: pabsw Pq,Qq | pabsw Vdq,Wdq (66)
6041e: pabsd Pq,Qq | pabsd Vdq,Wdq (66)
6051f:
606# 0x0f 0x38 0x20-0x2f
60720: pmovsxbw Vdq,Udq/Mq (66)
60821: pmovsxbd Vdq,Udq/Md (66)
60922: pmovsxbq Vdq,Udq/Mw (66)
61023: pmovsxwd Vdq,Udq/Mq (66)
61124: pmovsxwq Vdq,Udq/Md (66)
61225: pmovsxdq Vdq,Udq/Mq (66)
61326:
61427:
61528: pmuldq Vdq,Wdq (66)
61629: pcmpeqq Vdq,Wdq (66)
6172a: movntdqa Vdq,Mdq (66)
6182b: packusdw Vdq,Wdq (66)
6192c:
6202d:
6212e:
6222f:
623# 0x0f 0x38 0x30-0x3f
62430: pmovzxbw Vdq,Udq/Mq (66)
62531: pmovzxbd Vdq,Udq/Md (66)
62632: pmovzxbq Vdq,Udq/Mw (66)
62733: pmovzxwd Vdq,Udq/Mq (66)
62834: pmovzxwq Vdq,Udq/Md (66)
62935: pmovzxdq Vdq,Udq/Mq (66)
63036:
63137: pcmpgtq Vdq,Wdq (66)
63238: pminsb Vdq,Wdq (66)
63339: pminsd Vdq,Wdq (66)
6343a: pminuw Vdq,Wdq (66)
6353b: pminud Vdq,Wdq (66)
6363c: pmaxsb Vdq,Wdq (66)
6373d: pmaxsd Vdq,Wdq (66)
6383e: pmaxuw Vdq,Wdq (66)
6393f: pmaxud Vdq,Wdq (66)
640# 0x0f 0x38 0x4f-0xff
64140: pmulld Vdq,Wdq (66)
64241: phminposuw Vdq,Wdq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -040064380: INVEPT Gd/q,Mdq (66)
64481: INVPID Gd/q,Mdq (66)
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400645db: aesimc Vdq,Wdq (66)
646dc: aesenc Vdq,Wdq (66)
647dd: aesenclast Vdq,Wdq (66)
648de: aesdec Vdq,Wdq (66)
649df: aesdeclast Vdq,Wdq (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400650f0: MOVBE Gv,Mv | CRC32 Gd,Eb (F2)
651f1: MOVBE Mv,Gv | CRC32 Gd,Ev (F2)
652EndTable
653
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400654Table: 3-byte opcode 2 (0x0f 0x3a)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400655Referrer: 3-byte escape 2
Masami Hiramatsuf12b4f52009-09-08 12:32:46 -0400656# 0x0f 0x3a 0x00-0xff
65708: roundps Vdq,Wdq,Ib (66)
65809: roundpd Vdq,Wdq,Ib (66)
6590a: roundss Vss,Wss,Ib (66)
6600b: roundsd Vsd,Wsd,Ib (66)
6610c: blendps Vdq,Wdq,Ib (66)
6620d: blendpd Vdq,Wdq,Ib (66)
6630e: pblendw Vdq,Wdq,Ib (66)
6640f: palignr Pq,Qq,Ib | palignr Vdq,Wdq,Ib (66)
66514: pextrb Rd/Mb,Vdq,Ib (66)
66615: pextrw Rd/Mw,Vdq,Ib (66)
66716: pextrd/pextrq Ed/q,Vdq,Ib (66)
66817: extractps Ed,Vdq,Ib (66)
66920: pinsrb Vdq,Rd/q/Mb,Ib (66)
67021: insertps Vdq,Udq/Md,Ib (66)
67122: pinsrd/pinsrq Vdq,Ed/q,Ib (66)
67240: dpps Vdq,Wdq,Ib (66)
67341: dppd Vdq,Wdq,Ib (66)
67442: mpsadbw Vdq,Wdq,Ib (66)
67560: pcmpestrm Vdq,Wdq,Ib (66)
67661: pcmpestri Vdq,Wdq,Ib (66)
67762: pcmpistrm Vdq,Wdq,Ib (66)
67863: pcmpistri Vdq,Wdq,Ib (66)
Masami Hiramatsu9983d602009-10-20 12:55:31 -0400679df: aeskeygenassist Vdq,Wdq,Ib (66)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400680EndTable
681
682GrpTable: Grp1
6830: ADD
6841: OR
6852: ADC
6863: SBB
6874: AND
6885: SUB
6896: XOR
6907: CMP
691EndTable
692
693GrpTable: Grp1A
6940: POP
695EndTable
696
697GrpTable: Grp2
6980: ROL
6991: ROR
7002: RCL
7013: RCR
7024: SHL/SAL
7035: SHR
7046:
7057: SAR
706EndTable
707
708GrpTable: Grp3_1
7090: TEST Eb,Ib
7101:
7112: NOT Eb
7123: NEG Eb
7134: MUL AL,Eb
7145: IMUL AL,Eb
7156: DIV AL,Eb
7167: IDIV AL,Eb
717EndTable
718
719GrpTable: Grp3_2
7200: TEST Ev,Iz
7211:
7222: NOT Ev
7233: NEG Ev
7244: MUL rAX,Ev
7255: IMUL rAX,Ev
7266: DIV rAX,Ev
7277: IDIV rAX,Ev
728EndTable
729
730GrpTable: Grp4
7310: INC Eb
7321: DEC Eb
733EndTable
734
735GrpTable: Grp5
7360: INC Ev
7371: DEC Ev
7382: CALLN Ev (f64)
7393: CALLF Ep
7404: JMPN Ev (f64)
7415: JMPF Ep
7426: PUSH Ev (d64)
7437:
744EndTable
745
746GrpTable: Grp6
7470: SLDT Rv/Mw
7481: STR Rv/Mw
7492: LLDT Ew
7503: LTR Ew
7514: VERR Ew
7525: VERW Ew
753EndTable
754
755GrpTable: Grp7
7560: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B)
7571: SIDT Ms | MONITOR (000),(11B) | MWAIT (001)
7582: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B)
7593: LIDT Ms
7604: SMSW Mw/Rv
7615:
7626: LMSW Ew
7637: INVLPG Mb | SWAPGS (o64),(000),(11B) | RDTSCP (001),(11B)
764EndTable
765
766GrpTable: Grp8
7674: BT
7685: BTS
7696: BTR
7707: BTC
771EndTable
772
773GrpTable: Grp9
7741: CMPXCHG8B/16B Mq/Mdq
7756: VMPTRLD Mq | VMCLEAR Mq (66) | VMXON Mq (F3)
7767: VMPTRST Mq
777EndTable
778
779GrpTable: Grp10
780EndTable
781
782GrpTable: Grp11
7830: MOV
784EndTable
785
786GrpTable: Grp12
Masami Hiramatsu8c95bc32009-10-16 20:07:36 -04007872: psrlw Nq,Ib (11B) | psrlw Udq,Ib (66),(11B)
7884: psraw Nq,Ib (11B) | psraw Udq,Ib (66),(11B)
7896: psllw Nq,Ib (11B) | psllw Udq,Ib (66),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400790EndTable
791
792GrpTable: Grp13
Masami Hiramatsu8c95bc32009-10-16 20:07:36 -04007932: psrld Nq,Ib (11B) | psrld Udq,Ib (66),(11B)
7944: psrad Nq,Ib (11B) | psrad Udq,Ib (66),(11B)
7956: pslld Nq,Ib (11B) | pslld Udq,Ib (66),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400796EndTable
797
798GrpTable: Grp14
Masami Hiramatsu8c95bc32009-10-16 20:07:36 -04007992: psrlq Nq,Ib (11B) | psrlq Udq,Ib (66),(11B)
8003: psrldq Udq,Ib (66),(11B)
8016: psllq Nq,Ib (11B) | psllq Udq,Ib (66),(11B)
8027: pslldq Udq,Ib (66),(11B)
Masami Hiramatsueb132962009-08-13 16:34:13 -0400803EndTable
804
805GrpTable: Grp15
8060: fxsave
8071: fxstor
8082: ldmxcsr
8093: stmxcsr
8104: XSAVE
8115: XRSTOR | lfence (11B)
8126: mfence (11B)
8137: clflush | sfence (11B)
814EndTable
815
816GrpTable: Grp16
8170: prefetch NTA
8181: prefetch T0
8192: prefetch T1
8203: prefetch T2
821EndTable
822
Masami Hiramatsud1baf5a2009-10-16 20:07:44 -0400823# AMD's Prefetch Group
824GrpTable: GrpP
8250: PREFETCH
8261: PREFETCHW
827EndTable
828
Masami Hiramatsuc0b11d32009-09-25 11:20:38 -0700829GrpTable: GrpPDLK
8300: MONTMUL
8311: XSHA1
8322: XSHA2
833EndTable
834
Masami Hiramatsueb132962009-08-13 16:34:13 -0400835GrpTable: GrpRNG
8360: xstore-rng
8371: xcrypt-ecb
8382: xcrypt-cbc
8394: xcrypt-cfb
8405: xcrypt-ofb
841EndTable