xref: /netbsd-src/external/gpl3/gdb/dist/opcodes/i386-dis-evex.h (revision e306da23f45c6c746c9ac3d77a29ad761ec385d7)
1 static const struct dis386 evex_table[][256] = {
2   /* EVEX_0F */
3   {
4     /* 00 */
5     { Bad_Opcode },
6     { Bad_Opcode },
7     { Bad_Opcode },
8     { Bad_Opcode },
9     { Bad_Opcode },
10     { Bad_Opcode },
11     { Bad_Opcode },
12     { Bad_Opcode },
13     /* 08 */
14     { Bad_Opcode },
15     { Bad_Opcode },
16     { Bad_Opcode },
17     { Bad_Opcode },
18     { Bad_Opcode },
19     { Bad_Opcode },
20     { Bad_Opcode },
21     { Bad_Opcode },
22     /* 10 */
23     { PREFIX_TABLE (PREFIX_0F10) },
24     { PREFIX_TABLE (PREFIX_0F11) },
25     { PREFIX_TABLE (PREFIX_VEX_0F12) },
26     { VEX_LEN_TABLE (VEX_LEN_0F13) },
27     { "%XEvunpcklpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
28     { "%XEvunpckhpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
29     { PREFIX_TABLE (PREFIX_VEX_0F16) },
30     { VEX_LEN_TABLE (VEX_LEN_0F17) },
31     /* 18 */
32     { Bad_Opcode },
33     { Bad_Opcode },
34     { Bad_Opcode },
35     { Bad_Opcode },
36     { Bad_Opcode },
37     { Bad_Opcode },
38     { Bad_Opcode },
39     { Bad_Opcode },
40     /* 20 */
41     { Bad_Opcode },
42     { Bad_Opcode },
43     { Bad_Opcode },
44     { Bad_Opcode },
45     { Bad_Opcode },
46     { Bad_Opcode },
47     { Bad_Opcode },
48     { Bad_Opcode },
49     /* 28 */
50     { "%XEvmovapX",	{ XM, EXx }, PREFIX_OPCODE },
51     { "%XEvmovapX",	{ EXxS, XM }, PREFIX_OPCODE },
52     { PREFIX_TABLE (PREFIX_VEX_0F2A) },
53     { "%XEvmovntpX",	{ Mx, XM }, PREFIX_OPCODE },
54     { PREFIX_TABLE (PREFIX_VEX_0F2C) },
55     { PREFIX_TABLE (PREFIX_VEX_0F2D) },
56     { PREFIX_TABLE (PREFIX_0F2E) },
57     { PREFIX_TABLE (PREFIX_0F2F) },
58     /* 30 */
59     { Bad_Opcode },
60     { Bad_Opcode },
61     { Bad_Opcode },
62     { Bad_Opcode },
63     { Bad_Opcode },
64     { Bad_Opcode },
65     { Bad_Opcode },
66     { Bad_Opcode },
67     /* 38 */
68     { Bad_Opcode },
69     { Bad_Opcode },
70     { Bad_Opcode },
71     { Bad_Opcode },
72     { Bad_Opcode },
73     { Bad_Opcode },
74     { Bad_Opcode },
75     { Bad_Opcode },
76     /* 40 */
77     { Bad_Opcode },
78     { Bad_Opcode },
79     { Bad_Opcode },
80     { Bad_Opcode },
81     { Bad_Opcode },
82     { Bad_Opcode },
83     { Bad_Opcode },
84     { Bad_Opcode },
85     /* 48 */
86     { Bad_Opcode },
87     { Bad_Opcode },
88     { Bad_Opcode },
89     { Bad_Opcode },
90     { Bad_Opcode },
91     { Bad_Opcode },
92     { Bad_Opcode },
93     { Bad_Opcode },
94     /* 50 */
95     { Bad_Opcode },
96     { PREFIX_TABLE (PREFIX_0F51) },
97     { Bad_Opcode },
98     { Bad_Opcode },
99     { "%XEvandpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
100     { "%XEvandnpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
101     { "%XEvorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
102     { "%XEvxorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
103     /* 58 */
104     { PREFIX_TABLE (PREFIX_0F58) },
105     { PREFIX_TABLE (PREFIX_0F59) },
106     { PREFIX_TABLE (PREFIX_0F5A) },
107     { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
108     { PREFIX_TABLE (PREFIX_0F5C) },
109     { PREFIX_TABLE (PREFIX_0F5D) },
110     { PREFIX_TABLE (PREFIX_0F5E) },
111     { PREFIX_TABLE (PREFIX_0F5F) },
112     /* 60 */
113     { "%XEvpunpcklbw",	{ XM, Vex, EXx }, PREFIX_DATA },
114     { "%XEvpunpcklwd",	{ XM, Vex, EXx }, PREFIX_DATA },
115     { VEX_W_TABLE (EVEX_W_0F62) },
116     { "%XEvpacksswb",	{ XM, Vex, EXx }, PREFIX_DATA },
117     { "vpcmpgtb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
118     { "vpcmpgtw",	{ MaskG, Vex, EXx }, PREFIX_DATA },
119     { VEX_W_TABLE (EVEX_W_0F66) },
120     { "%XEvpackuswb",	{ XM, Vex, EXx }, PREFIX_DATA },
121     /* 68 */
122     { "%XEvpunpckhbw",	{ XM, Vex, EXx }, PREFIX_DATA },
123     { "%XEvpunpckhwd",	{ XM, Vex, EXx }, PREFIX_DATA },
124     { VEX_W_TABLE (EVEX_W_0F6A) },
125     { VEX_W_TABLE (EVEX_W_0F6B) },
126     { VEX_W_TABLE (EVEX_W_0F6C) },
127     { VEX_W_TABLE (EVEX_W_0F6D) },
128     { VEX_LEN_TABLE (VEX_LEN_0F6E) },
129     { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
130     /* 70 */
131     { PREFIX_TABLE (PREFIX_EVEX_0F70) },
132     { REG_TABLE (REG_EVEX_0F71) },
133     { REG_TABLE (REG_EVEX_0F72) },
134     { REG_TABLE (REG_EVEX_0F73) },
135     { "vpcmpeqb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
136     { "vpcmpeqw",	{ MaskG, Vex, EXx }, PREFIX_DATA },
137     { VEX_W_TABLE (EVEX_W_0F76) },
138     { Bad_Opcode },
139     /* 78 */
140     { PREFIX_TABLE (PREFIX_EVEX_0F78) },
141     { PREFIX_TABLE (PREFIX_EVEX_0F79) },
142     { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
143     { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
144     { Bad_Opcode },
145     { Bad_Opcode },
146     { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
147     { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
148     /* 80 */
149     { Bad_Opcode },
150     { Bad_Opcode },
151     { Bad_Opcode },
152     { Bad_Opcode },
153     { Bad_Opcode },
154     { Bad_Opcode },
155     { Bad_Opcode },
156     { Bad_Opcode },
157     /* 88 */
158     { Bad_Opcode },
159     { Bad_Opcode },
160     { Bad_Opcode },
161     { Bad_Opcode },
162     { Bad_Opcode },
163     { Bad_Opcode },
164     { Bad_Opcode },
165     { Bad_Opcode },
166     /* 90 */
167     { X86_64_EVEX_W_TABLE (VEX_W_0F90_L_0) },
168     { X86_64_EVEX_W_TABLE (VEX_W_0F91_L_0) },
169     { X86_64_EVEX_W_TABLE (VEX_W_0F92_L_0) },
170     { X86_64_EVEX_W_TABLE (VEX_W_0F93_L_0) },
171     { Bad_Opcode },
172     { Bad_Opcode },
173     { Bad_Opcode },
174     { Bad_Opcode },
175     /* 98 */
176     { Bad_Opcode },
177     { Bad_Opcode },
178     { Bad_Opcode },
179     { Bad_Opcode },
180     { Bad_Opcode },
181     { Bad_Opcode },
182     { Bad_Opcode },
183     { Bad_Opcode },
184     /* A0 */
185     { Bad_Opcode },
186     { Bad_Opcode },
187     { Bad_Opcode },
188     { Bad_Opcode },
189     { Bad_Opcode },
190     { Bad_Opcode },
191     { Bad_Opcode },
192     { Bad_Opcode },
193     /* A8 */
194     { Bad_Opcode },
195     { Bad_Opcode },
196     { Bad_Opcode },
197     { Bad_Opcode },
198     { Bad_Opcode },
199     { Bad_Opcode },
200     { Bad_Opcode },
201     { Bad_Opcode },
202     /* B0 */
203     { Bad_Opcode },
204     { Bad_Opcode },
205     { Bad_Opcode },
206     { Bad_Opcode },
207     { Bad_Opcode },
208     { Bad_Opcode },
209     { Bad_Opcode },
210     { Bad_Opcode },
211     /* B8 */
212     { Bad_Opcode },
213     { Bad_Opcode },
214     { Bad_Opcode },
215     { Bad_Opcode },
216     { Bad_Opcode },
217     { Bad_Opcode },
218     { Bad_Opcode },
219     { Bad_Opcode },
220     /* C0 */
221     { Bad_Opcode },
222     { Bad_Opcode },
223     { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
224     { Bad_Opcode },
225     { VEX_LEN_TABLE (VEX_LEN_0FC4) },
226     { "%XEvpextrw",	{ Gd, Uxmm, Ib }, PREFIX_DATA },
227     { "%XEvshufpX",	{ XM, Vex, EXx, Ib }, PREFIX_OPCODE },
228     { Bad_Opcode },
229     /* C8 */
230     { Bad_Opcode },
231     { Bad_Opcode },
232     { Bad_Opcode },
233     { Bad_Opcode },
234     { Bad_Opcode },
235     { Bad_Opcode },
236     { Bad_Opcode },
237     { Bad_Opcode },
238     /* D0 */
239     { Bad_Opcode },
240     { "%XEvpsrlw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
241     { VEX_W_TABLE (EVEX_W_0FD2) },
242     { VEX_W_TABLE (EVEX_W_0FD3) },
243     { VEX_W_TABLE (EVEX_W_0FD4) },
244     { "%XEvpmullw",	{ XM, Vex, EXx }, PREFIX_DATA },
245     { VEX_W_TABLE (EVEX_W_0FD6) },
246     { Bad_Opcode },
247     /* D8 */
248     { "%XEvpsubusb",	{ XM, Vex, EXx }, PREFIX_DATA },
249     { "%XEvpsubusw",	{ XM, Vex, EXx }, PREFIX_DATA },
250     { "%XEvpminub",	{ XM, Vex, EXx }, PREFIX_DATA },
251     { "vpand%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
252     { "%XEvpaddusb",	{ XM, Vex, EXx }, PREFIX_DATA },
253     { "%XEvpaddusw",	{ XM, Vex, EXx }, PREFIX_DATA },
254     { "%XEvpmaxub",	{ XM, Vex, EXx }, PREFIX_DATA },
255     { "vpandn%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
256     /* E0 */
257     { "%XEvpavgb",	{ XM, Vex, EXx }, PREFIX_DATA },
258     { "%XEvpsraw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
259     { "%XEvpsra%DQ",	{ XM, Vex, EXxmm }, PREFIX_DATA },
260     { "%XEvpavgw",	{ XM, Vex, EXx }, PREFIX_DATA },
261     { "%XEvpmulhuw",	{ XM, Vex, EXx }, PREFIX_DATA },
262     { "%XEvpmulhw",	{ XM, Vex, EXx }, PREFIX_DATA },
263     { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
264     { VEX_W_TABLE (EVEX_W_0FE7) },
265     /* E8 */
266     { "%XEvpsubsb",	{ XM, Vex, EXx }, PREFIX_DATA },
267     { "%XEvpsubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
268     { "%XEvpminsw",	{ XM, Vex, EXx }, PREFIX_DATA },
269     { "vpor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
270     { "%XEvpaddsb",	{ XM, Vex, EXx }, PREFIX_DATA },
271     { "%XEvpaddsw",	{ XM, Vex, EXx }, PREFIX_DATA },
272     { "%XEvpmaxsw",	{ XM, Vex, EXx }, PREFIX_DATA },
273     { "vpxor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
274     /* F0 */
275     { Bad_Opcode },
276     { "%XEvpsllw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
277     { VEX_W_TABLE (EVEX_W_0FF2) },
278     { VEX_W_TABLE (EVEX_W_0FF3) },
279     { VEX_W_TABLE (EVEX_W_0FF4) },
280     { "%XEvpmaddwd",	{ XM, Vex, EXx }, PREFIX_DATA },
281     { "%XEvpsadbwY",	{ XM, Vex, EXx }, PREFIX_DATA },
282     { Bad_Opcode },
283     /* F8 */
284     { "%XEvpsubb",	{ XM, Vex, EXx }, PREFIX_DATA },
285     { "%XEvpsubw",	{ XM, Vex, EXx }, PREFIX_DATA },
286     { VEX_W_TABLE (EVEX_W_0FFA) },
287     { VEX_W_TABLE (EVEX_W_0FFB) },
288     { "%XEvpaddb",	{ XM, Vex, EXx }, PREFIX_DATA },
289     { "%XEvpaddw",	{ XM, Vex, EXx }, PREFIX_DATA },
290     { VEX_W_TABLE (EVEX_W_0FFE) },
291     { Bad_Opcode },
292   },
293   /* EVEX_0F38 */
294   {
295     /* 00 */
296     { "%XEvpshufb",	{ XM, Vex, EXx }, PREFIX_DATA },
297     { Bad_Opcode },
298     { Bad_Opcode },
299     { Bad_Opcode },
300     { "%XEvpmaddubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
301     { Bad_Opcode },
302     { Bad_Opcode },
303     { Bad_Opcode },
304     /* 08 */
305     { Bad_Opcode },
306     { Bad_Opcode },
307     { Bad_Opcode },
308     { "%XEvpmulhrsw",	{ XM, Vex, EXx }, PREFIX_DATA },
309     { VEX_W_TABLE (VEX_W_0F380C) },
310     { "%XEvpermilp%XD", { XM, Vex, EXx }, PREFIX_DATA },
311     { Bad_Opcode },
312     { Bad_Opcode },
313     /* 10 */
314     { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
315     { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
316     { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
317     { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
318     { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
319     { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
320     { EVEX_LEN_TABLE (EVEX_LEN_0F3816) },
321     { Bad_Opcode },
322     /* 18 */
323     { VEX_W_TABLE (VEX_W_0F3818) },
324     { EVEX_LEN_TABLE (EVEX_LEN_0F3819) },
325     { EVEX_LEN_TABLE (EVEX_LEN_0F381A) },
326     { EVEX_LEN_TABLE (EVEX_LEN_0F381B) },
327     { "%XEvpabsb",		{ XM, EXx }, PREFIX_DATA },
328     { "%XEvpabsw",		{ XM, EXx }, PREFIX_DATA },
329     { VEX_W_TABLE (EVEX_W_0F381E) },
330     { VEX_W_TABLE (EVEX_W_0F381F) },
331     /* 20 */
332     { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
333     { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
334     { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
335     { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
336     { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
337     { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
338     { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
339     { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
340     /* 28 */
341     { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
342     { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
343     { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
344     { VEX_W_TABLE (EVEX_W_0F382B) },
345     { "vscalefp%XW",	{ XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
346     { "vscalefs%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
347     { Bad_Opcode },
348     { Bad_Opcode },
349     /* 30 */
350     { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
351     { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
352     { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
353     { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
354     { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
355     { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
356     { EVEX_LEN_TABLE (EVEX_LEN_0F3836) },
357     { VEX_W_TABLE (EVEX_W_0F3837) },
358     /* 38 */
359     { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
360     { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
361     { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
362     { "%XEvpminu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
363     { "%XEvpmaxsb",	{ XM, Vex, EXx }, PREFIX_DATA },
364     { "%XEvpmaxs%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
365     { "%XEvpmaxuw",	{ XM, Vex, EXx }, PREFIX_DATA },
366     { "%XEvpmaxu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
367     /* 40 */
368     { "%XEvpmull%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
369     { Bad_Opcode },
370     { "vgetexpp%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
371     { "vgetexps%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
372     { "vplzcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
373     { "vpsrlv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
374     { "vpsrav%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
375     { "vpsllv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
376     /* 48 */
377     { Bad_Opcode },
378     { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F3849_X86_64_L_0) },
379     { Bad_Opcode },
380     { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F384B_X86_64_L_0) },
381     { "vrcp14p%XW",	{ XM, EXx }, PREFIX_DATA },
382     { "vrcp14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
383     { "vrsqrt14p%XW",	{ XM, EXx }, 0 },
384     { "vrsqrt14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
385     /* 50 */
386     { VEX_W_TABLE (VEX_W_0F3850) },
387     { VEX_W_TABLE (VEX_W_0F3851) },
388     { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
389     { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
390     { "vpopcnt%BW",	{ XM, EXx }, PREFIX_DATA },
391     { "vpopcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
392     { Bad_Opcode },
393     { Bad_Opcode },
394     /* 58 */
395     { VEX_W_TABLE (VEX_W_0F3858) },
396     { VEX_W_TABLE (EVEX_W_0F3859) },
397     { EVEX_LEN_TABLE (EVEX_LEN_0F385A) },
398     { EVEX_LEN_TABLE (EVEX_LEN_0F385B) },
399     { Bad_Opcode },
400     { Bad_Opcode },
401     { Bad_Opcode },
402     { Bad_Opcode },
403     /* 60 */
404     { Bad_Opcode },
405     { Bad_Opcode },
406     { "vpexpand%BW",	{ XM, EXbwUnit }, PREFIX_DATA },
407     { "vpcompress%BW",	{ EXbwUnit, XM }, PREFIX_DATA },
408     { "vpblendm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
409     { "vblendmp%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
410     { "vpblendm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
411     { Bad_Opcode },
412     /* 68 */
413     { PREFIX_TABLE (PREFIX_EVEX_0F3868) },
414     { Bad_Opcode },
415     { Bad_Opcode },
416     { Bad_Opcode },
417     { Bad_Opcode },
418     { Bad_Opcode },
419     { Bad_Opcode },
420     { Bad_Opcode },
421     /* 70 */
422     { VEX_W_TABLE (EVEX_W_0F3870) },
423     { "vpshldv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
424     { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
425     { "vpshrdv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
426     { Bad_Opcode },
427     { "vpermi2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
428     { "vpermi2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
429     { "vpermi2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
430     /* 78 */
431     { VEX_W_TABLE (VEX_W_0F3878) },
432     { VEX_W_TABLE (VEX_W_0F3879) },
433     { VEX_W_TABLE (EVEX_W_0F387A) },
434     { VEX_W_TABLE (EVEX_W_0F387B) },
435     { "vpbroadcastK",	{ XM, Rdq }, PREFIX_DATA },
436     { "vpermt2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
437     { "vpermt2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
438     { "vpermt2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
439     /* 80 */
440     { Bad_Opcode },
441     { Bad_Opcode },
442     { Bad_Opcode },
443     { VEX_W_TABLE (EVEX_W_0F3883) },
444     { Bad_Opcode },
445     { Bad_Opcode },
446     { Bad_Opcode },
447     { Bad_Opcode },
448     /* 88 */
449     { "vexpandp%XW",	{ XM, EXEvexXGscat }, PREFIX_DATA },
450     { "vpexpand%DQ",	{ XM, EXEvexXGscat }, PREFIX_DATA },
451     { "vcompressp%XW",	{ EXEvexXGscat, XM }, PREFIX_DATA },
452     { "vpcompress%DQ",	{ EXEvexXGscat, XM }, PREFIX_DATA },
453     { Bad_Opcode },
454     { "vperm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
455     { Bad_Opcode },
456     { "vpshufbitqmb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
457     /* 90 */
458     { "vpgatherd%DQ",	{ XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
459     { "vpgatherq%DQ",	{ XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
460     { "vgatherdp%XW",	{ XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
461     { "vgatherqp%XW",	{ XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
462     { Bad_Opcode },
463     { Bad_Opcode },
464     { "%XEvfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
465     { "%XEvfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
466     /* 98 */
467     { "%XEvfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
468     { "%XEvfmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
469     { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
470     { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
471     { "%XEvfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
472     { "%XEvfnmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
473     { "%XEvfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
474     { "%XEvfnmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
475     /* A0 */
476     { "vpscatterd%DQ",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
477     { "vpscatterq%DQ",	{ MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
478     { "vscatterdp%XW",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
479     { "vscatterqp%XW",	{ MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
480     { Bad_Opcode },
481     { Bad_Opcode },
482     { "%XEvfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
483     { "%XEvfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
484     /* A8 */
485     { "%XEvfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
486     { "%XEvfmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
487     { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
488     { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
489     { "%XEvfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
490     { "%XEvfnmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
491     { "%XEvfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
492     { "%XEvfnmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
493     /* B0 */
494     { Bad_Opcode },
495     { Bad_Opcode },
496     { Bad_Opcode },
497     { Bad_Opcode },
498     { VEX_W_TABLE (VEX_W_0F38B4) },
499     { VEX_W_TABLE (VEX_W_0F38B5) },
500     { "%XEvfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
501     { "%XEvfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
502     /* B8 */
503     { "%XEvfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
504     { "%XEvfmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
505     { "%XEvfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
506     { "%XEvfmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
507     { "%XEvfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
508     { "%XEvfnmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
509     { "%XEvfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
510     { "%XEvfnmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
511     /* C0 */
512     { Bad_Opcode },
513     { Bad_Opcode },
514     { Bad_Opcode },
515     { Bad_Opcode },
516     { "vpconflict%DQ",	{ XM, EXx }, PREFIX_DATA },
517     { Bad_Opcode },
518     { EVEX_LEN_TABLE (EVEX_LEN_0F38C6) },
519     { EVEX_LEN_TABLE (EVEX_LEN_0F38C7) },
520     /* C8 */
521     { "vexp2p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
522     { Bad_Opcode },
523     { "vrcp28p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
524     { "vrcp28s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
525     { "vrsqrt28p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
526     { "vrsqrt28s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
527     { Bad_Opcode },
528     { VEX_W_TABLE (VEX_W_0F38CF) },
529     /* D0 */
530     { Bad_Opcode },
531     { Bad_Opcode },
532     { Bad_Opcode },
533     { Bad_Opcode },
534     { Bad_Opcode },
535     { Bad_Opcode },
536     { Bad_Opcode },
537     { Bad_Opcode },
538     /* D8 */
539     { Bad_Opcode },
540     { Bad_Opcode },
541     { Bad_Opcode },
542     { Bad_Opcode },
543     { "%XEvaesencY",	{ XM, Vex, EXx }, PREFIX_DATA },
544     { "%XEvaesenclastY", { XM, Vex, EXx }, PREFIX_DATA },
545     { "%XEvaesdecY",	{ XM, Vex, EXx }, PREFIX_DATA },
546     { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA },
547     /* E0 */
548     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E0) },
549     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E1) },
550     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E2) },
551     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E3) },
552     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E4) },
553     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E5) },
554     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E6) },
555     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E7) },
556     /* E8 */
557     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E8) },
558     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38E9) },
559     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EA) },
560     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EB) },
561     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EC) },
562     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38ED) },
563     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EE) },
564     { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38EF) },
565     /* F0 */
566     { Bad_Opcode },
567     { Bad_Opcode },
568     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F2_L_0) },
569     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F3_L_0) },
570     { Bad_Opcode },
571     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F5_L_0) },
572     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F6_L_0) },
573     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F7_L_0) },
574     /* F8 */
575     { Bad_Opcode },
576     { Bad_Opcode },
577     { Bad_Opcode },
578     { Bad_Opcode },
579     { Bad_Opcode },
580     { Bad_Opcode },
581     { Bad_Opcode },
582     { Bad_Opcode },
583   },
584   /* EVEX_0F3A */
585   {
586     /* 00 */
587     { EVEX_LEN_TABLE (EVEX_LEN_0F3A00) },
588     { EVEX_LEN_TABLE (EVEX_LEN_0F3A01) },
589     { Bad_Opcode },
590     { "valign%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
591     { VEX_W_TABLE (VEX_W_0F3A04) },
592     { "%XEvpermilp%XD", { XM, EXx, Ib }, PREFIX_DATA },
593     { Bad_Opcode },
594     { Bad_Opcode },
595     /* 08 */
596     { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
597     { "vrndscalep%XD", { XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
598     { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
599     { "vrndscales%XD", { XMScalar, VexScalar, EXq, EXxEVexS, Ib }, PREFIX_DATA },
600     { Bad_Opcode },
601     { Bad_Opcode },
602     { Bad_Opcode },
603     { "%XEvpalignr",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
604     /* 10 */
605     { Bad_Opcode },
606     { Bad_Opcode },
607     { Bad_Opcode },
608     { Bad_Opcode },
609     { VEX_LEN_TABLE (VEX_LEN_0F3A14) },
610     { VEX_LEN_TABLE (VEX_LEN_0F3A15) },
611     { VEX_LEN_TABLE (VEX_LEN_0F3A16) },
612     { VEX_LEN_TABLE (VEX_LEN_0F3A17) },
613     /* 18 */
614     { EVEX_LEN_TABLE (EVEX_LEN_0F3A18) },
615     { EVEX_LEN_TABLE (EVEX_LEN_0F3A19) },
616     { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A) },
617     { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B) },
618     { Bad_Opcode },
619     { VEX_W_TABLE (VEX_W_0F3A1D) },
620     { "vpcmpu%DQ",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
621     { "vpcmp%DQ",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
622     /* 20 */
623     { VEX_LEN_TABLE (VEX_LEN_0F3A20) },
624     { VEX_W_TABLE (EVEX_W_0F3A21) },
625     { VEX_LEN_TABLE (VEX_LEN_0F3A22) },
626     { EVEX_LEN_TABLE (EVEX_LEN_0F3A23) },
627     { Bad_Opcode },
628     { "vpternlog%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
629     { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
630     { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
631     /* 28 */
632     { Bad_Opcode },
633     { Bad_Opcode },
634     { Bad_Opcode },
635     { Bad_Opcode },
636     { Bad_Opcode },
637     { Bad_Opcode },
638     { Bad_Opcode },
639     { Bad_Opcode },
640     /* 30 */
641     { Bad_Opcode },
642     { Bad_Opcode },
643     { Bad_Opcode },
644     { Bad_Opcode },
645     { Bad_Opcode },
646     { Bad_Opcode },
647     { Bad_Opcode },
648     { Bad_Opcode },
649     /* 38 */
650     { EVEX_LEN_TABLE (EVEX_LEN_0F3A38) },
651     { EVEX_LEN_TABLE (EVEX_LEN_0F3A39) },
652     { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A) },
653     { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B) },
654     { Bad_Opcode },
655     { Bad_Opcode },
656     { "vpcmpu%BW",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
657     { "vpcmp%BW",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
658     /* 40 */
659     { Bad_Opcode },
660     { Bad_Opcode },
661     { VEX_W_TABLE (EVEX_W_0F3A42) },
662     { EVEX_LEN_TABLE (EVEX_LEN_0F3A43) },
663     { "%XEvpclmulqdqY",	{ XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
664     { Bad_Opcode },
665     { Bad_Opcode },
666     { Bad_Opcode },
667     /* 48 */
668     { Bad_Opcode },
669     { Bad_Opcode },
670     { Bad_Opcode },
671     { Bad_Opcode },
672     { Bad_Opcode },
673     { Bad_Opcode },
674     { Bad_Opcode },
675     { Bad_Opcode },
676     /* 50 */
677     { "vrangep%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
678     { "vranges%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
679     { Bad_Opcode },
680     { Bad_Opcode },
681     { "vfixupimmp%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
682     { "vfixupimms%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
683     { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
684     { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
685     /* 58 */
686     { Bad_Opcode },
687     { Bad_Opcode },
688     { Bad_Opcode },
689     { Bad_Opcode },
690     { Bad_Opcode },
691     { Bad_Opcode },
692     { Bad_Opcode },
693     { Bad_Opcode },
694     /* 60 */
695     { Bad_Opcode },
696     { Bad_Opcode },
697     { Bad_Opcode },
698     { Bad_Opcode },
699     { Bad_Opcode },
700     { Bad_Opcode },
701     { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
702     { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
703     /* 68 */
704     { Bad_Opcode },
705     { Bad_Opcode },
706     { Bad_Opcode },
707     { Bad_Opcode },
708     { Bad_Opcode },
709     { Bad_Opcode },
710     { Bad_Opcode },
711     { Bad_Opcode },
712     /* 70 */
713     { VEX_W_TABLE (EVEX_W_0F3A70) },
714     { "vpshld%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
715     { VEX_W_TABLE (EVEX_W_0F3A72) },
716     { "vpshrd%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
717     { Bad_Opcode },
718     { Bad_Opcode },
719     { Bad_Opcode },
720     { Bad_Opcode },
721     /* 78 */
722     { Bad_Opcode },
723     { Bad_Opcode },
724     { Bad_Opcode },
725     { Bad_Opcode },
726     { Bad_Opcode },
727     { Bad_Opcode },
728     { Bad_Opcode },
729     { Bad_Opcode },
730     /* 80 */
731     { Bad_Opcode },
732     { Bad_Opcode },
733     { Bad_Opcode },
734     { Bad_Opcode },
735     { Bad_Opcode },
736     { Bad_Opcode },
737     { Bad_Opcode },
738     { Bad_Opcode },
739     /* 88 */
740     { Bad_Opcode },
741     { Bad_Opcode },
742     { Bad_Opcode },
743     { Bad_Opcode },
744     { Bad_Opcode },
745     { Bad_Opcode },
746     { Bad_Opcode },
747     { Bad_Opcode },
748     /* 90 */
749     { Bad_Opcode },
750     { Bad_Opcode },
751     { Bad_Opcode },
752     { Bad_Opcode },
753     { Bad_Opcode },
754     { Bad_Opcode },
755     { Bad_Opcode },
756     { Bad_Opcode },
757     /* 98 */
758     { Bad_Opcode },
759     { Bad_Opcode },
760     { Bad_Opcode },
761     { Bad_Opcode },
762     { Bad_Opcode },
763     { Bad_Opcode },
764     { Bad_Opcode },
765     { Bad_Opcode },
766     /* A0 */
767     { Bad_Opcode },
768     { Bad_Opcode },
769     { Bad_Opcode },
770     { Bad_Opcode },
771     { Bad_Opcode },
772     { Bad_Opcode },
773     { Bad_Opcode },
774     { Bad_Opcode },
775     /* A8 */
776     { Bad_Opcode },
777     { Bad_Opcode },
778     { Bad_Opcode },
779     { Bad_Opcode },
780     { Bad_Opcode },
781     { Bad_Opcode },
782     { Bad_Opcode },
783     { Bad_Opcode },
784     /* B0 */
785     { Bad_Opcode },
786     { Bad_Opcode },
787     { Bad_Opcode },
788     { Bad_Opcode },
789     { Bad_Opcode },
790     { Bad_Opcode },
791     { Bad_Opcode },
792     { Bad_Opcode },
793     /* B8 */
794     { Bad_Opcode },
795     { Bad_Opcode },
796     { Bad_Opcode },
797     { Bad_Opcode },
798     { Bad_Opcode },
799     { Bad_Opcode },
800     { Bad_Opcode },
801     { Bad_Opcode },
802     /* C0 */
803     { Bad_Opcode },
804     { Bad_Opcode },
805     { PREFIX_TABLE (PREFIX_EVEX_0F3AC2) },
806     { Bad_Opcode },
807     { Bad_Opcode },
808     { Bad_Opcode },
809     { Bad_Opcode },
810     { Bad_Opcode },
811     /* C8 */
812     { Bad_Opcode },
813     { Bad_Opcode },
814     { Bad_Opcode },
815     { Bad_Opcode },
816     { Bad_Opcode },
817     { Bad_Opcode },
818     { VEX_W_TABLE (VEX_W_0F3ACE) },
819     { VEX_W_TABLE (VEX_W_0F3ACF) },
820     /* D0 */
821     { Bad_Opcode },
822     { Bad_Opcode },
823     { Bad_Opcode },
824     { Bad_Opcode },
825     { Bad_Opcode },
826     { Bad_Opcode },
827     { Bad_Opcode },
828     { Bad_Opcode },
829     /* D8 */
830     { Bad_Opcode },
831     { Bad_Opcode },
832     { Bad_Opcode },
833     { Bad_Opcode },
834     { Bad_Opcode },
835     { Bad_Opcode },
836     { Bad_Opcode },
837     { Bad_Opcode },
838     /* E0 */
839     { Bad_Opcode },
840     { Bad_Opcode },
841     { Bad_Opcode },
842     { Bad_Opcode },
843     { Bad_Opcode },
844     { Bad_Opcode },
845     { Bad_Opcode },
846     { Bad_Opcode },
847     /* E8 */
848     { Bad_Opcode },
849     { Bad_Opcode },
850     { Bad_Opcode },
851     { Bad_Opcode },
852     { Bad_Opcode },
853     { Bad_Opcode },
854     { Bad_Opcode },
855     { Bad_Opcode },
856     /* F0 */
857     { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F3AF0_L_0) },
858     { Bad_Opcode },
859     { Bad_Opcode },
860     { Bad_Opcode },
861     { Bad_Opcode },
862     { Bad_Opcode },
863     { Bad_Opcode },
864     { Bad_Opcode },
865     /* F8 */
866     { Bad_Opcode },
867     { Bad_Opcode },
868     { Bad_Opcode },
869     { Bad_Opcode },
870     { Bad_Opcode },
871     { Bad_Opcode },
872     { Bad_Opcode },
873     { Bad_Opcode },
874   },
875   /* EVEX_MAP4_ */
876   {
877     /* 00 */
878     { "%NFaddB",	{ VexGb, Eb, Gb }, NO_PREFIX },
879     { "%NFaddS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
880     { "%NFaddB",	{ VexGb, Gb, EbS }, NO_PREFIX },
881     { "%NFaddS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
882     { Bad_Opcode },
883     { Bad_Opcode },
884     { Bad_Opcode },
885     { Bad_Opcode },
886     /* 08 */
887     { "%NForB",	{ VexGb, Eb, Gb }, NO_PREFIX },
888     { "%NForS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
889     { "%NForB",	{ VexGb, Gb, EbS }, NO_PREFIX },
890     { "%NForS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
891     { Bad_Opcode },
892     { Bad_Opcode },
893     { Bad_Opcode },
894     { Bad_Opcode },
895     /* 10 */
896     { "adcB",	{ VexGb, Eb, Gb }, NO_PREFIX },
897     { "adcS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
898     { "adcB",	{ VexGb, Gb, EbS }, NO_PREFIX },
899     { "adcS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
900     { Bad_Opcode },
901     { Bad_Opcode },
902     { Bad_Opcode },
903     { Bad_Opcode },
904     /* 18 */
905     { "sbbB",	{ VexGb, Eb, Gb }, NO_PREFIX },
906     { "sbbS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
907     { "sbbB",	{ VexGb, Gb, EbS }, NO_PREFIX },
908     { "sbbS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
909     { Bad_Opcode },
910     { Bad_Opcode },
911     { Bad_Opcode },
912     { Bad_Opcode },
913     /* 20 */
914     { "%NFandB",	{ VexGb, Eb, Gb }, NO_PREFIX },
915     { "%NFandS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
916     { "%NFandB",	{ VexGb, Gb, EbS }, NO_PREFIX },
917     { "%NFandS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
918     { "%NFshldS",	{ VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
919     { Bad_Opcode },
920     { Bad_Opcode },
921     { Bad_Opcode },
922     /* 28 */
923     { "%NFsubB",	{ VexGb, Eb, Gb }, NO_PREFIX },
924     { "%NFsubS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
925     { "%NFsubB",	{ VexGb, Gb, EbS }, NO_PREFIX },
926     { "%NFsubS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
927     { "%NFshrdS",	{ VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
928     { Bad_Opcode },
929     { Bad_Opcode },
930     { Bad_Opcode },
931     /* 30 */
932     { "%NFxorB",	{ VexGb, Eb, Gb }, NO_PREFIX },
933     { "%NFxorS",	{ VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
934     { "%NFxorB",	{ VexGb, Gb, EbS }, NO_PREFIX },
935     { "%NFxorS",	{ VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
936     { Bad_Opcode },
937     { Bad_Opcode },
938     { Bad_Opcode },
939     { Bad_Opcode },
940     /* 38 */
941     { Bad_Opcode },
942     { Bad_Opcode },
943     { Bad_Opcode },
944     { Bad_Opcode },
945     { Bad_Opcode },
946     { Bad_Opcode },
947     { Bad_Opcode },
948     { Bad_Opcode },
949     /* 40 */
950     { PREFIX_TABLE (PREFIX_EVEX_MAP4_40) },
951     { PREFIX_TABLE (PREFIX_EVEX_MAP4_41) },
952     { PREFIX_TABLE (PREFIX_EVEX_MAP4_42) },
953     { PREFIX_TABLE (PREFIX_EVEX_MAP4_43) },
954     { PREFIX_TABLE (PREFIX_EVEX_MAP4_44) },
955     { PREFIX_TABLE (PREFIX_EVEX_MAP4_45) },
956     { PREFIX_TABLE (PREFIX_EVEX_MAP4_46) },
957     { PREFIX_TABLE (PREFIX_EVEX_MAP4_47) },
958     /* 48 */
959     { PREFIX_TABLE (PREFIX_EVEX_MAP4_48) },
960     { PREFIX_TABLE (PREFIX_EVEX_MAP4_49) },
961     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4A) },
962     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4B) },
963     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4C) },
964     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4D) },
965     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4E) },
966     { PREFIX_TABLE (PREFIX_EVEX_MAP4_4F) },
967     /* 50 */
968     { Bad_Opcode },
969     { Bad_Opcode },
970     { Bad_Opcode },
971     { Bad_Opcode },
972     { Bad_Opcode },
973     { Bad_Opcode },
974     { Bad_Opcode },
975     { Bad_Opcode },
976     /* 58 */
977     { Bad_Opcode },
978     { Bad_Opcode },
979     { Bad_Opcode },
980     { Bad_Opcode },
981     { Bad_Opcode },
982     { Bad_Opcode },
983     { Bad_Opcode },
984     { Bad_Opcode },
985     /* 60 */
986     { "%MEmovbeS",	{ Gv, Ev }, PREFIX_NP_OR_DATA },
987     { "%MEmovbeS",	{ Ev, Gv }, PREFIX_NP_OR_DATA },
988     { Bad_Opcode },
989     { Bad_Opcode },
990     { Bad_Opcode },
991     { "wrussK",	{ M, Gdq }, PREFIX_DATA },
992     { PREFIX_TABLE (PREFIX_0F38F6) },
993     { Bad_Opcode },
994     /* 68 */
995     { Bad_Opcode },
996     { "%NFimul%ZUS",	{ Gv, Ev, Iv }, PREFIX_NP_OR_DATA },
997     { Bad_Opcode },
998     { "%NFimul%ZUS",	{ Gv, Ev, sIb }, PREFIX_NP_OR_DATA },
999     { Bad_Opcode },
1000     { Bad_Opcode },
1001     { Bad_Opcode },
1002     { Bad_Opcode },
1003     /* 70 */
1004     { Bad_Opcode },
1005     { Bad_Opcode },
1006     { Bad_Opcode },
1007     { Bad_Opcode },
1008     { Bad_Opcode },
1009     { Bad_Opcode },
1010     { Bad_Opcode },
1011     { Bad_Opcode },
1012     /* 78 */
1013     { Bad_Opcode },
1014     { Bad_Opcode },
1015     { Bad_Opcode },
1016     { Bad_Opcode },
1017     { Bad_Opcode },
1018     { Bad_Opcode },
1019     { Bad_Opcode },
1020     { Bad_Opcode },
1021     /* 80 */
1022     { REG_TABLE (REG_EVEX_MAP4_80) },
1023     { REG_TABLE (REG_EVEX_MAP4_81) },
1024     { Bad_Opcode },
1025     { REG_TABLE (REG_EVEX_MAP4_83) },
1026     { Bad_Opcode },
1027     { Bad_Opcode },
1028     { Bad_Opcode },
1029     { Bad_Opcode },
1030     /* 88 */
1031     { "%NFpopcntS",	{ Gv, Ev }, PREFIX_NP_OR_DATA },
1032     { Bad_Opcode },
1033     { Bad_Opcode },
1034     { Bad_Opcode },
1035     { Bad_Opcode },
1036     { Bad_Opcode },
1037     { Bad_Opcode },
1038     { REG_TABLE (REG_EVEX_MAP4_8F) },
1039     /* 90 */
1040     { Bad_Opcode },
1041     { Bad_Opcode },
1042     { Bad_Opcode },
1043     { Bad_Opcode },
1044     { Bad_Opcode },
1045     { Bad_Opcode },
1046     { Bad_Opcode },
1047     { Bad_Opcode },
1048     /* 98 */
1049     { Bad_Opcode },
1050     { Bad_Opcode },
1051     { Bad_Opcode },
1052     { Bad_Opcode },
1053     { Bad_Opcode },
1054     { Bad_Opcode },
1055     { Bad_Opcode },
1056     { Bad_Opcode },
1057     /* A0 */
1058     { Bad_Opcode },
1059     { Bad_Opcode },
1060     { Bad_Opcode },
1061     { Bad_Opcode },
1062     { Bad_Opcode },
1063     { "%NFshldS",	{ VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
1064     { Bad_Opcode },
1065     { Bad_Opcode },
1066     /* A8 */
1067     { Bad_Opcode },
1068     { Bad_Opcode },
1069     { Bad_Opcode },
1070     { Bad_Opcode },
1071     { Bad_Opcode },
1072     { "%NFshrdS",	{ VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
1073     { Bad_Opcode },
1074     { "%NFimulS",	{ VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
1075     /* B0 */
1076     { Bad_Opcode },
1077     { Bad_Opcode },
1078     { Bad_Opcode },
1079     { Bad_Opcode },
1080     { Bad_Opcode },
1081     { Bad_Opcode },
1082     { Bad_Opcode },
1083     { Bad_Opcode },
1084     /* B8 */
1085     { Bad_Opcode },
1086     { Bad_Opcode },
1087     { Bad_Opcode },
1088     { Bad_Opcode },
1089     { Bad_Opcode },
1090     { Bad_Opcode },
1091     { Bad_Opcode },
1092     { Bad_Opcode },
1093     /* C0 */
1094     { REG_TABLE (REG_C0) },
1095     { REG_TABLE (REG_C1) },
1096     { Bad_Opcode },
1097     { Bad_Opcode },
1098     { Bad_Opcode },
1099     { Bad_Opcode },
1100     { Bad_Opcode },
1101     { Bad_Opcode },
1102     /* C8 */
1103     { Bad_Opcode },
1104     { Bad_Opcode },
1105     { Bad_Opcode },
1106     { Bad_Opcode },
1107     { Bad_Opcode },
1108     { Bad_Opcode },
1109     { Bad_Opcode },
1110     { Bad_Opcode },
1111     /* D0 */
1112     { REG_TABLE (REG_D0) },
1113     { REG_TABLE (REG_D1) },
1114     { REG_TABLE (REG_D2) },
1115     { REG_TABLE (REG_D3) },
1116     { Bad_Opcode },
1117     { Bad_Opcode },
1118     { Bad_Opcode },
1119     { Bad_Opcode },
1120     /* D8 */
1121     { Bad_Opcode },
1122     { Bad_Opcode },
1123     { Bad_Opcode },
1124     { Bad_Opcode },
1125     { Bad_Opcode },
1126     { Bad_Opcode },
1127     { Bad_Opcode },
1128     { Bad_Opcode },
1129     /* E0 */
1130     { Bad_Opcode },
1131     { Bad_Opcode },
1132     { Bad_Opcode },
1133     { Bad_Opcode },
1134     { Bad_Opcode },
1135     { Bad_Opcode },
1136     { Bad_Opcode },
1137     { Bad_Opcode },
1138     /* E8 */
1139     { Bad_Opcode },
1140     { Bad_Opcode },
1141     { Bad_Opcode },
1142     { Bad_Opcode },
1143     { Bad_Opcode },
1144     { Bad_Opcode },
1145     { Bad_Opcode },
1146     { Bad_Opcode },
1147     /* F0 */
1148     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F0) },
1149     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F1) },
1150     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F2) },
1151     { Bad_Opcode },
1152     { "%NFtzcntS",	{ Gv, Ev }, PREFIX_NP_OR_DATA },
1153     { "%NFlzcntS",	{ Gv, Ev }, PREFIX_NP_OR_DATA },
1154     { REG_TABLE (REG_EVEX_MAP4_F6) },
1155     { REG_TABLE (REG_EVEX_MAP4_F7) },
1156     /* F8 */
1157     { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8) },
1158     { "movdiri",	{ Mdq, Gdq }, NO_PREFIX },
1159     { Bad_Opcode },
1160     { Bad_Opcode },
1161     { PREFIX_TABLE (PREFIX_0F38FC) },
1162     { Bad_Opcode },
1163     { REG_TABLE (REG_EVEX_MAP4_FE) },
1164     { REG_TABLE (REG_EVEX_MAP4_FF) },
1165   },
1166   /* EVEX_MAP5_ */
1167   {
1168     /* 00 */
1169     { Bad_Opcode },
1170     { Bad_Opcode },
1171     { Bad_Opcode },
1172     { Bad_Opcode },
1173     { Bad_Opcode },
1174     { Bad_Opcode },
1175     { Bad_Opcode },
1176     { Bad_Opcode },
1177     /* 08 */
1178     { Bad_Opcode },
1179     { Bad_Opcode },
1180     { Bad_Opcode },
1181     { Bad_Opcode },
1182     { Bad_Opcode },
1183     { Bad_Opcode },
1184     { Bad_Opcode },
1185     { Bad_Opcode },
1186     /* 10 */
1187     { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
1188     { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
1189     { Bad_Opcode },
1190     { Bad_Opcode },
1191     { Bad_Opcode },
1192     { Bad_Opcode },
1193     { Bad_Opcode },
1194     { Bad_Opcode },
1195     /* 18 */
1196     { Bad_Opcode },
1197     { Bad_Opcode },
1198     { Bad_Opcode },
1199     { Bad_Opcode },
1200     { Bad_Opcode },
1201     { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
1202     { Bad_Opcode },
1203     { Bad_Opcode },
1204     /* 20 */
1205     { Bad_Opcode },
1206     { Bad_Opcode },
1207     { Bad_Opcode },
1208     { Bad_Opcode },
1209     { Bad_Opcode },
1210     { Bad_Opcode },
1211     { Bad_Opcode },
1212     { Bad_Opcode },
1213     /* 28 */
1214     { Bad_Opcode },
1215     { Bad_Opcode },
1216     { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
1217     { Bad_Opcode },
1218     { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
1219     { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
1220     { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
1221     { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
1222     /* 30 */
1223     { Bad_Opcode },
1224     { Bad_Opcode },
1225     { Bad_Opcode },
1226     { Bad_Opcode },
1227     { Bad_Opcode },
1228     { Bad_Opcode },
1229     { Bad_Opcode },
1230     { Bad_Opcode },
1231     /* 38 */
1232     { Bad_Opcode },
1233     { Bad_Opcode },
1234     { Bad_Opcode },
1235     { Bad_Opcode },
1236     { Bad_Opcode },
1237     { Bad_Opcode },
1238     { Bad_Opcode },
1239     { Bad_Opcode },
1240     /* 40 */
1241     { Bad_Opcode },
1242     { Bad_Opcode },
1243     { Bad_Opcode },
1244     { Bad_Opcode },
1245     { Bad_Opcode },
1246     { Bad_Opcode },
1247     { Bad_Opcode },
1248     { Bad_Opcode },
1249     /* 48 */
1250     { Bad_Opcode },
1251     { Bad_Opcode },
1252     { Bad_Opcode },
1253     { Bad_Opcode },
1254     { Bad_Opcode },
1255     { Bad_Opcode },
1256     { Bad_Opcode },
1257     { Bad_Opcode },
1258     /* 50 */
1259     { Bad_Opcode },
1260     { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
1261     { Bad_Opcode },
1262     { Bad_Opcode },
1263     { Bad_Opcode },
1264     { Bad_Opcode },
1265     { Bad_Opcode },
1266     { Bad_Opcode },
1267     /* 58 */
1268     { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
1269     { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
1270     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
1271     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
1272     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
1273     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
1274     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
1275     { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
1276     /* 60 */
1277     { Bad_Opcode },
1278     { Bad_Opcode },
1279     { Bad_Opcode },
1280     { Bad_Opcode },
1281     { Bad_Opcode },
1282     { Bad_Opcode },
1283     { Bad_Opcode },
1284     { Bad_Opcode },
1285     /* 68 */
1286     { Bad_Opcode },
1287     { Bad_Opcode },
1288     { Bad_Opcode },
1289     { Bad_Opcode },
1290     { Bad_Opcode },
1291     { Bad_Opcode },
1292     { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
1293     { Bad_Opcode },
1294     /* 70 */
1295     { Bad_Opcode },
1296     { Bad_Opcode },
1297     { Bad_Opcode },
1298     { Bad_Opcode },
1299     { Bad_Opcode },
1300     { Bad_Opcode },
1301     { Bad_Opcode },
1302     { Bad_Opcode },
1303     /* 78 */
1304     { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
1305     { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
1306     { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
1307     { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
1308     { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
1309     { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
1310     { "vmovw",	  { Edw, XMScalar }, PREFIX_DATA },
1311     { Bad_Opcode },
1312     /* 80 */
1313     { Bad_Opcode },
1314     { Bad_Opcode },
1315     { Bad_Opcode },
1316     { Bad_Opcode },
1317     { Bad_Opcode },
1318     { Bad_Opcode },
1319     { Bad_Opcode },
1320     { Bad_Opcode },
1321     /* 88 */
1322     { Bad_Opcode },
1323     { Bad_Opcode },
1324     { Bad_Opcode },
1325     { Bad_Opcode },
1326     { Bad_Opcode },
1327     { Bad_Opcode },
1328     { Bad_Opcode },
1329     { Bad_Opcode },
1330     /* 90 */
1331     { Bad_Opcode },
1332     { Bad_Opcode },
1333     { Bad_Opcode },
1334     { Bad_Opcode },
1335     { Bad_Opcode },
1336     { Bad_Opcode },
1337     { Bad_Opcode },
1338     { Bad_Opcode },
1339     /* 98 */
1340     { Bad_Opcode },
1341     { Bad_Opcode },
1342     { Bad_Opcode },
1343     { Bad_Opcode },
1344     { Bad_Opcode },
1345     { Bad_Opcode },
1346     { Bad_Opcode },
1347     { Bad_Opcode },
1348     /* A0 */
1349     { Bad_Opcode },
1350     { Bad_Opcode },
1351     { Bad_Opcode },
1352     { Bad_Opcode },
1353     { Bad_Opcode },
1354     { Bad_Opcode },
1355     { Bad_Opcode },
1356     { Bad_Opcode },
1357     /* A8 */
1358     { Bad_Opcode },
1359     { Bad_Opcode },
1360     { Bad_Opcode },
1361     { Bad_Opcode },
1362     { Bad_Opcode },
1363     { Bad_Opcode },
1364     { Bad_Opcode },
1365     { Bad_Opcode },
1366     /* B0 */
1367     { Bad_Opcode },
1368     { Bad_Opcode },
1369     { Bad_Opcode },
1370     { Bad_Opcode },
1371     { Bad_Opcode },
1372     { Bad_Opcode },
1373     { Bad_Opcode },
1374     { Bad_Opcode },
1375     /* B8 */
1376     { Bad_Opcode },
1377     { Bad_Opcode },
1378     { Bad_Opcode },
1379     { Bad_Opcode },
1380     { Bad_Opcode },
1381     { Bad_Opcode },
1382     { Bad_Opcode },
1383     { Bad_Opcode },
1384     /* C0 */
1385     { Bad_Opcode },
1386     { Bad_Opcode },
1387     { Bad_Opcode },
1388     { Bad_Opcode },
1389     { Bad_Opcode },
1390     { Bad_Opcode },
1391     { Bad_Opcode },
1392     { Bad_Opcode },
1393     /* C8 */
1394     { Bad_Opcode },
1395     { Bad_Opcode },
1396     { Bad_Opcode },
1397     { Bad_Opcode },
1398     { Bad_Opcode },
1399     { Bad_Opcode },
1400     { Bad_Opcode },
1401     { Bad_Opcode },
1402     /* D0 */
1403     { Bad_Opcode },
1404     { Bad_Opcode },
1405     { Bad_Opcode },
1406     { Bad_Opcode },
1407     { Bad_Opcode },
1408     { Bad_Opcode },
1409     { Bad_Opcode },
1410     { Bad_Opcode },
1411     /* D8 */
1412     { Bad_Opcode },
1413     { Bad_Opcode },
1414     { Bad_Opcode },
1415     { Bad_Opcode },
1416     { Bad_Opcode },
1417     { Bad_Opcode },
1418     { Bad_Opcode },
1419     { Bad_Opcode },
1420     /* E0 */
1421     { Bad_Opcode },
1422     { Bad_Opcode },
1423     { Bad_Opcode },
1424     { Bad_Opcode },
1425     { Bad_Opcode },
1426     { Bad_Opcode },
1427     { Bad_Opcode },
1428     { Bad_Opcode },
1429     /* E8 */
1430     { Bad_Opcode },
1431     { Bad_Opcode },
1432     { Bad_Opcode },
1433     { Bad_Opcode },
1434     { Bad_Opcode },
1435     { Bad_Opcode },
1436     { Bad_Opcode },
1437     { Bad_Opcode },
1438     /* F0 */
1439     { Bad_Opcode },
1440     { Bad_Opcode },
1441     { Bad_Opcode },
1442     { Bad_Opcode },
1443     { Bad_Opcode },
1444     { Bad_Opcode },
1445     { Bad_Opcode },
1446     { Bad_Opcode },
1447     /* F8 */
1448     { Bad_Opcode },
1449     { Bad_Opcode },
1450     { Bad_Opcode },
1451     { Bad_Opcode },
1452     { Bad_Opcode },
1453     { Bad_Opcode },
1454     { Bad_Opcode },
1455     { Bad_Opcode },
1456   },
1457   /* EVEX_MAP6_ */
1458   {
1459     /* 00 */
1460     { Bad_Opcode },
1461     { Bad_Opcode },
1462     { Bad_Opcode },
1463     { Bad_Opcode },
1464     { Bad_Opcode },
1465     { Bad_Opcode },
1466     { Bad_Opcode },
1467     { Bad_Opcode },
1468     /* 08 */
1469     { Bad_Opcode },
1470     { Bad_Opcode },
1471     { Bad_Opcode },
1472     { Bad_Opcode },
1473     { Bad_Opcode },
1474     { Bad_Opcode },
1475     { Bad_Opcode },
1476     { Bad_Opcode },
1477     /* 10 */
1478     { Bad_Opcode },
1479     { Bad_Opcode },
1480     { Bad_Opcode },
1481     { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
1482     { Bad_Opcode },
1483     { Bad_Opcode },
1484     { Bad_Opcode },
1485     { Bad_Opcode },
1486     /* 18 */
1487     { Bad_Opcode },
1488     { Bad_Opcode },
1489     { Bad_Opcode },
1490     { Bad_Opcode },
1491     { Bad_Opcode },
1492     { Bad_Opcode },
1493     { Bad_Opcode },
1494     { Bad_Opcode },
1495     /* 20 */
1496     { Bad_Opcode },
1497     { Bad_Opcode },
1498     { Bad_Opcode },
1499     { Bad_Opcode },
1500     { Bad_Opcode },
1501     { Bad_Opcode },
1502     { Bad_Opcode },
1503     { Bad_Opcode },
1504     /* 28 */
1505     { Bad_Opcode },
1506     { Bad_Opcode },
1507     { Bad_Opcode },
1508     { Bad_Opcode },
1509     { "vscalefp%XH",      { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1510     { "vscalefs%XH",      { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1511     { Bad_Opcode },
1512     { Bad_Opcode },
1513     /* 30 */
1514     { Bad_Opcode },
1515     { Bad_Opcode },
1516     { Bad_Opcode },
1517     { Bad_Opcode },
1518     { Bad_Opcode },
1519     { Bad_Opcode },
1520     { Bad_Opcode },
1521     { Bad_Opcode },
1522     /* 38 */
1523     { Bad_Opcode },
1524     { Bad_Opcode },
1525     { Bad_Opcode },
1526     { Bad_Opcode },
1527     { Bad_Opcode },
1528     { Bad_Opcode },
1529     { Bad_Opcode },
1530     { Bad_Opcode },
1531     /* 40 */
1532     { Bad_Opcode },
1533     { Bad_Opcode },
1534     { "vgetexpp%XH",      { XM, EXxh, EXxEVexS }, PREFIX_DATA },
1535     { "vgetexps%XH",      { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
1536     { Bad_Opcode },
1537     { Bad_Opcode },
1538     { Bad_Opcode },
1539     { Bad_Opcode },
1540     /* 48 */
1541     { Bad_Opcode },
1542     { Bad_Opcode },
1543     { Bad_Opcode },
1544     { Bad_Opcode },
1545     { "vrcpp%XH",	  { XM, EXxh }, PREFIX_DATA },
1546     { "vrcps%XH",	  { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1547     { "vrsqrtp%XH",       { XM, EXxh }, PREFIX_DATA },
1548     { "vrsqrts%XH",       { XMScalar, VexScalar, EXw }, PREFIX_DATA },
1549     /* 50 */
1550     { Bad_Opcode },
1551     { Bad_Opcode },
1552     { Bad_Opcode },
1553     { Bad_Opcode },
1554     { Bad_Opcode },
1555     { Bad_Opcode },
1556     { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
1557     { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
1558     /* 58 */
1559     { Bad_Opcode },
1560     { Bad_Opcode },
1561     { Bad_Opcode },
1562     { Bad_Opcode },
1563     { Bad_Opcode },
1564     { Bad_Opcode },
1565     { Bad_Opcode },
1566     { Bad_Opcode },
1567     /* 60 */
1568     { Bad_Opcode },
1569     { Bad_Opcode },
1570     { Bad_Opcode },
1571     { Bad_Opcode },
1572     { Bad_Opcode },
1573     { Bad_Opcode },
1574     { Bad_Opcode },
1575     { Bad_Opcode },
1576     /* 68 */
1577     { Bad_Opcode },
1578     { Bad_Opcode },
1579     { Bad_Opcode },
1580     { Bad_Opcode },
1581     { Bad_Opcode },
1582     { Bad_Opcode },
1583     { Bad_Opcode },
1584     { Bad_Opcode },
1585     /* 70 */
1586     { Bad_Opcode },
1587     { Bad_Opcode },
1588     { Bad_Opcode },
1589     { Bad_Opcode },
1590     { Bad_Opcode },
1591     { Bad_Opcode },
1592     { Bad_Opcode },
1593     { Bad_Opcode },
1594     /* 78 */
1595     { Bad_Opcode },
1596     { Bad_Opcode },
1597     { Bad_Opcode },
1598     { Bad_Opcode },
1599     { Bad_Opcode },
1600     { Bad_Opcode },
1601     { Bad_Opcode },
1602     { Bad_Opcode },
1603     /* 80 */
1604     { Bad_Opcode },
1605     { Bad_Opcode },
1606     { Bad_Opcode },
1607     { Bad_Opcode },
1608     { Bad_Opcode },
1609     { Bad_Opcode },
1610     { Bad_Opcode },
1611     { Bad_Opcode },
1612     /* 88 */
1613     { Bad_Opcode },
1614     { Bad_Opcode },
1615     { Bad_Opcode },
1616     { Bad_Opcode },
1617     { Bad_Opcode },
1618     { Bad_Opcode },
1619     { Bad_Opcode },
1620     { Bad_Opcode },
1621     /* 90 */
1622     { Bad_Opcode },
1623     { Bad_Opcode },
1624     { Bad_Opcode },
1625     { Bad_Opcode },
1626     { Bad_Opcode },
1627     { Bad_Opcode },
1628     { "vfmaddsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1629     { "vfmsubadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1630     /* 98 */
1631     { "vfmadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1632     { "vfmadd132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1633     { "vfmsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1634     { "vfmsub132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1635     { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1636     { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1637     { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1638     { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1639     /* A0 */
1640     { Bad_Opcode },
1641     { Bad_Opcode },
1642     { Bad_Opcode },
1643     { Bad_Opcode },
1644     { Bad_Opcode },
1645     { Bad_Opcode },
1646     { "vfmaddsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1647     { "vfmsubadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1648     /* A8 */
1649     { "vfmadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1650     { "vfmadd213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1651     { "vfmsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1652     { "vfmsub213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1653     { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1654     { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1655     { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1656     { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1657     /* B0 */
1658     { Bad_Opcode },
1659     { Bad_Opcode },
1660     { Bad_Opcode },
1661     { Bad_Opcode },
1662     { Bad_Opcode },
1663     { Bad_Opcode },
1664     { "vfmaddsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1665     { "vfmsubadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1666     /* B8 */
1667     { "vfmadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1668     { "vfmadd231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1669     { "vfmsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1670     { "vfmsub231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1671     { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1672     { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1673     { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
1674     { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
1675     /* C0 */
1676     { Bad_Opcode },
1677     { Bad_Opcode },
1678     { Bad_Opcode },
1679     { Bad_Opcode },
1680     { Bad_Opcode },
1681     { Bad_Opcode },
1682     { Bad_Opcode },
1683     { Bad_Opcode },
1684     /* C8 */
1685     { Bad_Opcode },
1686     { Bad_Opcode },
1687     { Bad_Opcode },
1688     { Bad_Opcode },
1689     { Bad_Opcode },
1690     { Bad_Opcode },
1691     { Bad_Opcode },
1692     { Bad_Opcode },
1693     /* D0 */
1694     { Bad_Opcode },
1695     { Bad_Opcode },
1696     { Bad_Opcode },
1697     { Bad_Opcode },
1698     { Bad_Opcode },
1699     { Bad_Opcode },
1700     { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
1701     { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
1702     /* D8 */
1703     { Bad_Opcode },
1704     { Bad_Opcode },
1705     { Bad_Opcode },
1706     { Bad_Opcode },
1707     { Bad_Opcode },
1708     { Bad_Opcode },
1709     { Bad_Opcode },
1710     { Bad_Opcode },
1711     /* E0 */
1712     { Bad_Opcode },
1713     { Bad_Opcode },
1714     { Bad_Opcode },
1715     { Bad_Opcode },
1716     { Bad_Opcode },
1717     { Bad_Opcode },
1718     { Bad_Opcode },
1719     { Bad_Opcode },
1720     /* E8 */
1721     { Bad_Opcode },
1722     { Bad_Opcode },
1723     { Bad_Opcode },
1724     { Bad_Opcode },
1725     { Bad_Opcode },
1726     { Bad_Opcode },
1727     { Bad_Opcode },
1728     { Bad_Opcode },
1729     /* F0 */
1730     { Bad_Opcode },
1731     { Bad_Opcode },
1732     { Bad_Opcode },
1733     { Bad_Opcode },
1734     { Bad_Opcode },
1735     { Bad_Opcode },
1736     { Bad_Opcode },
1737     { Bad_Opcode },
1738     /* F8 */
1739     { Bad_Opcode },
1740     { Bad_Opcode },
1741     { Bad_Opcode },
1742     { Bad_Opcode },
1743     { Bad_Opcode },
1744     { Bad_Opcode },
1745     { Bad_Opcode },
1746     { Bad_Opcode },
1747   },
1748 };
1749