i386-dis-evex.h revision 1.5
1static 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_EVEX_0F10) },
24    { PREFIX_TABLE (PREFIX_EVEX_0F11) },
25    { PREFIX_TABLE (PREFIX_EVEX_0F12) },
26    { PREFIX_TABLE (PREFIX_EVEX_0F13) },
27    { PREFIX_TABLE (PREFIX_EVEX_0F14) },
28    { PREFIX_TABLE (PREFIX_EVEX_0F15) },
29    { PREFIX_TABLE (PREFIX_EVEX_0F16) },
30    { PREFIX_TABLE (PREFIX_EVEX_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    { PREFIX_TABLE (PREFIX_EVEX_0F28) },
51    { PREFIX_TABLE (PREFIX_EVEX_0F29) },
52    { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
53    { PREFIX_TABLE (PREFIX_EVEX_0F2B) },
54    { PREFIX_TABLE (PREFIX_EVEX_0F2C) },
55    { PREFIX_TABLE (PREFIX_EVEX_0F2D) },
56    { PREFIX_TABLE (PREFIX_EVEX_0F2E) },
57    { PREFIX_TABLE (PREFIX_EVEX_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_EVEX_0F51) },
97    { Bad_Opcode },
98    { Bad_Opcode },
99    { PREFIX_TABLE (PREFIX_EVEX_0F54) },
100    { PREFIX_TABLE (PREFIX_EVEX_0F55) },
101    { PREFIX_TABLE (PREFIX_EVEX_0F56) },
102    { PREFIX_TABLE (PREFIX_EVEX_0F57) },
103    /* 58 */
104    { PREFIX_TABLE (PREFIX_EVEX_0F58) },
105    { PREFIX_TABLE (PREFIX_EVEX_0F59) },
106    { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
107    { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
108    { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
109    { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
110    { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
111    { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
112    /* 60 */
113    { PREFIX_TABLE (PREFIX_EVEX_0F60) },
114    { PREFIX_TABLE (PREFIX_EVEX_0F61) },
115    { PREFIX_TABLE (PREFIX_EVEX_0F62) },
116    { PREFIX_TABLE (PREFIX_EVEX_0F63) },
117    { PREFIX_TABLE (PREFIX_EVEX_0F64) },
118    { PREFIX_TABLE (PREFIX_EVEX_0F65) },
119    { PREFIX_TABLE (PREFIX_EVEX_0F66) },
120    { PREFIX_TABLE (PREFIX_EVEX_0F67) },
121    /* 68 */
122    { PREFIX_TABLE (PREFIX_EVEX_0F68) },
123    { PREFIX_TABLE (PREFIX_EVEX_0F69) },
124    { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
125    { PREFIX_TABLE (PREFIX_EVEX_0F6B) },
126    { PREFIX_TABLE (PREFIX_EVEX_0F6C) },
127    { PREFIX_TABLE (PREFIX_EVEX_0F6D) },
128    { PREFIX_TABLE (PREFIX_EVEX_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    { PREFIX_TABLE (PREFIX_EVEX_0F74) },
136    { PREFIX_TABLE (PREFIX_EVEX_0F75) },
137    { PREFIX_TABLE (PREFIX_EVEX_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    { Bad_Opcode },
168    { Bad_Opcode },
169    { Bad_Opcode },
170    { Bad_Opcode },
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    { PREFIX_TABLE (PREFIX_EVEX_0FC4) },
226    { PREFIX_TABLE (PREFIX_EVEX_0FC5) },
227    { PREFIX_TABLE (PREFIX_EVEX_0FC6) },
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    { PREFIX_TABLE (PREFIX_EVEX_0FD1) },
241    { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
242    { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
243    { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
244    { PREFIX_TABLE (PREFIX_EVEX_0FD5) },
245    { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
246    { Bad_Opcode },
247    /* D8 */
248    { PREFIX_TABLE (PREFIX_EVEX_0FD8) },
249    { PREFIX_TABLE (PREFIX_EVEX_0FD9) },
250    { PREFIX_TABLE (PREFIX_EVEX_0FDA) },
251    { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
252    { PREFIX_TABLE (PREFIX_EVEX_0FDC) },
253    { PREFIX_TABLE (PREFIX_EVEX_0FDD) },
254    { PREFIX_TABLE (PREFIX_EVEX_0FDE) },
255    { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
256    /* E0 */
257    { PREFIX_TABLE (PREFIX_EVEX_0FE0) },
258    { PREFIX_TABLE (PREFIX_EVEX_0FE1) },
259    { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
260    { PREFIX_TABLE (PREFIX_EVEX_0FE3) },
261    { PREFIX_TABLE (PREFIX_EVEX_0FE4) },
262    { PREFIX_TABLE (PREFIX_EVEX_0FE5) },
263    { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
264    { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
265    /* E8 */
266    { PREFIX_TABLE (PREFIX_EVEX_0FE8) },
267    { PREFIX_TABLE (PREFIX_EVEX_0FE9) },
268    { PREFIX_TABLE (PREFIX_EVEX_0FEA) },
269    { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
270    { PREFIX_TABLE (PREFIX_EVEX_0FEC) },
271    { PREFIX_TABLE (PREFIX_EVEX_0FED) },
272    { PREFIX_TABLE (PREFIX_EVEX_0FEE) },
273    { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
274    /* F0 */
275    { Bad_Opcode },
276    { PREFIX_TABLE (PREFIX_EVEX_0FF1) },
277    { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
278    { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
279    { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
280    { PREFIX_TABLE (PREFIX_EVEX_0FF5) },
281    { PREFIX_TABLE (PREFIX_EVEX_0FF6) },
282    { Bad_Opcode },
283    /* F8 */
284    { PREFIX_TABLE (PREFIX_EVEX_0FF8) },
285    { PREFIX_TABLE (PREFIX_EVEX_0FF9) },
286    { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
287    { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
288    { PREFIX_TABLE (PREFIX_EVEX_0FFC) },
289    { PREFIX_TABLE (PREFIX_EVEX_0FFD) },
290    { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
291    { Bad_Opcode },
292  },
293  /* EVEX_0F38 */
294  {
295    /* 00 */
296    { PREFIX_TABLE (PREFIX_EVEX_0F3800) },
297    { Bad_Opcode },
298    { Bad_Opcode },
299    { Bad_Opcode },
300    { PREFIX_TABLE (PREFIX_EVEX_0F3804) },
301    { Bad_Opcode },
302    { Bad_Opcode },
303    { Bad_Opcode },
304    /* 08 */
305    { Bad_Opcode },
306    { Bad_Opcode },
307    { Bad_Opcode },
308    { PREFIX_TABLE (PREFIX_EVEX_0F380B) },
309    { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
310    { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3816) },
321    { Bad_Opcode },
322    /* 18 */
323    { PREFIX_TABLE (PREFIX_EVEX_0F3818) },
324    { PREFIX_TABLE (PREFIX_EVEX_0F3819) },
325    { PREFIX_TABLE (PREFIX_EVEX_0F381A) },
326    { PREFIX_TABLE (PREFIX_EVEX_0F381B) },
327    { PREFIX_TABLE (PREFIX_EVEX_0F381C) },
328    { PREFIX_TABLE (PREFIX_EVEX_0F381D) },
329    { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
330    { PREFIX_TABLE (PREFIX_EVEX_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    { PREFIX_TABLE (PREFIX_EVEX_0F382B) },
345    { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
346    { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3836) },
357    { PREFIX_TABLE (PREFIX_EVEX_0F3837) },
358    /* 38 */
359    { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
360    { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
361    { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
362    { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
363    { PREFIX_TABLE (PREFIX_EVEX_0F383C) },
364    { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
365    { PREFIX_TABLE (PREFIX_EVEX_0F383E) },
366    { PREFIX_TABLE (PREFIX_EVEX_0F383F) },
367    /* 40 */
368    { PREFIX_TABLE (PREFIX_EVEX_0F3840) },
369    { Bad_Opcode },
370    { PREFIX_TABLE (PREFIX_EVEX_0F3842) },
371    { PREFIX_TABLE (PREFIX_EVEX_0F3843) },
372    { PREFIX_TABLE (PREFIX_EVEX_0F3844) },
373    { PREFIX_TABLE (PREFIX_EVEX_0F3845) },
374    { PREFIX_TABLE (PREFIX_EVEX_0F3846) },
375    { PREFIX_TABLE (PREFIX_EVEX_0F3847) },
376    /* 48 */
377    { Bad_Opcode },
378    { Bad_Opcode },
379    { Bad_Opcode },
380    { Bad_Opcode },
381    { PREFIX_TABLE (PREFIX_EVEX_0F384C) },
382    { PREFIX_TABLE (PREFIX_EVEX_0F384D) },
383    { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
384    { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
385    /* 50 */
386    { PREFIX_TABLE (PREFIX_EVEX_0F3850) },
387    { PREFIX_TABLE (PREFIX_EVEX_0F3851) },
388    { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
389    { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
390    { PREFIX_TABLE (PREFIX_EVEX_0F3854) },
391    { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
392    { Bad_Opcode },
393    { Bad_Opcode },
394    /* 58 */
395    { PREFIX_TABLE (PREFIX_EVEX_0F3858) },
396    { PREFIX_TABLE (PREFIX_EVEX_0F3859) },
397    { PREFIX_TABLE (PREFIX_EVEX_0F385A) },
398    { PREFIX_TABLE (PREFIX_EVEX_0F385B) },
399    { Bad_Opcode },
400    { Bad_Opcode },
401    { Bad_Opcode },
402    { Bad_Opcode },
403    /* 60 */
404    { Bad_Opcode },
405    { Bad_Opcode },
406    { PREFIX_TABLE (PREFIX_EVEX_0F3862) },
407    { PREFIX_TABLE (PREFIX_EVEX_0F3863) },
408    { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
409    { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
410    { PREFIX_TABLE (PREFIX_EVEX_0F3866) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3870) },
423    { PREFIX_TABLE (PREFIX_EVEX_0F3871) },
424    { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
425    { PREFIX_TABLE (PREFIX_EVEX_0F3873) },
426    { Bad_Opcode },
427    { PREFIX_TABLE (PREFIX_EVEX_0F3875) },
428    { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
429    { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
430    /* 78 */
431    { PREFIX_TABLE (PREFIX_EVEX_0F3878) },
432    { PREFIX_TABLE (PREFIX_EVEX_0F3879) },
433    { PREFIX_TABLE (PREFIX_EVEX_0F387A) },
434    { PREFIX_TABLE (PREFIX_EVEX_0F387B) },
435    { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
436    { PREFIX_TABLE (PREFIX_EVEX_0F387D) },
437    { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
438    { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
439    /* 80 */
440    { Bad_Opcode },
441    { Bad_Opcode },
442    { Bad_Opcode },
443    { PREFIX_TABLE (PREFIX_EVEX_0F3883) },
444    { Bad_Opcode },
445    { Bad_Opcode },
446    { Bad_Opcode },
447    { Bad_Opcode },
448    /* 88 */
449    { PREFIX_TABLE (PREFIX_EVEX_0F3888) },
450    { PREFIX_TABLE (PREFIX_EVEX_0F3889) },
451    { PREFIX_TABLE (PREFIX_EVEX_0F388A) },
452    { PREFIX_TABLE (PREFIX_EVEX_0F388B) },
453    { Bad_Opcode },
454    { PREFIX_TABLE (PREFIX_EVEX_0F388D) },
455    { Bad_Opcode },
456    { PREFIX_TABLE (PREFIX_EVEX_0F388F) },
457    /* 90 */
458    { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
459    { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
460    { PREFIX_TABLE (PREFIX_EVEX_0F3892) },
461    { PREFIX_TABLE (PREFIX_EVEX_0F3893) },
462    { Bad_Opcode },
463    { Bad_Opcode },
464    { PREFIX_TABLE (PREFIX_EVEX_0F3896) },
465    { PREFIX_TABLE (PREFIX_EVEX_0F3897) },
466    /* 98 */
467    { PREFIX_TABLE (PREFIX_EVEX_0F3898) },
468    { PREFIX_TABLE (PREFIX_EVEX_0F3899) },
469    { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
470    { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
471    { PREFIX_TABLE (PREFIX_EVEX_0F389C) },
472    { PREFIX_TABLE (PREFIX_EVEX_0F389D) },
473    { PREFIX_TABLE (PREFIX_EVEX_0F389E) },
474    { PREFIX_TABLE (PREFIX_EVEX_0F389F) },
475    /* A0 */
476    { PREFIX_TABLE (PREFIX_EVEX_0F38A0) },
477    { PREFIX_TABLE (PREFIX_EVEX_0F38A1) },
478    { PREFIX_TABLE (PREFIX_EVEX_0F38A2) },
479    { PREFIX_TABLE (PREFIX_EVEX_0F38A3) },
480    { Bad_Opcode },
481    { Bad_Opcode },
482    { PREFIX_TABLE (PREFIX_EVEX_0F38A6) },
483    { PREFIX_TABLE (PREFIX_EVEX_0F38A7) },
484    /* A8 */
485    { PREFIX_TABLE (PREFIX_EVEX_0F38A8) },
486    { PREFIX_TABLE (PREFIX_EVEX_0F38A9) },
487    { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
488    { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
489    { PREFIX_TABLE (PREFIX_EVEX_0F38AC) },
490    { PREFIX_TABLE (PREFIX_EVEX_0F38AD) },
491    { PREFIX_TABLE (PREFIX_EVEX_0F38AE) },
492    { PREFIX_TABLE (PREFIX_EVEX_0F38AF) },
493    /* B0 */
494    { Bad_Opcode },
495    { Bad_Opcode },
496    { Bad_Opcode },
497    { Bad_Opcode },
498    { PREFIX_TABLE (PREFIX_EVEX_0F38B4) },
499    { PREFIX_TABLE (PREFIX_EVEX_0F38B5) },
500    { PREFIX_TABLE (PREFIX_EVEX_0F38B6) },
501    { PREFIX_TABLE (PREFIX_EVEX_0F38B7) },
502    /* B8 */
503    { PREFIX_TABLE (PREFIX_EVEX_0F38B8) },
504    { PREFIX_TABLE (PREFIX_EVEX_0F38B9) },
505    { PREFIX_TABLE (PREFIX_EVEX_0F38BA) },
506    { PREFIX_TABLE (PREFIX_EVEX_0F38BB) },
507    { PREFIX_TABLE (PREFIX_EVEX_0F38BC) },
508    { PREFIX_TABLE (PREFIX_EVEX_0F38BD) },
509    { PREFIX_TABLE (PREFIX_EVEX_0F38BE) },
510    { PREFIX_TABLE (PREFIX_EVEX_0F38BF) },
511    /* C0 */
512    { Bad_Opcode },
513    { Bad_Opcode },
514    { Bad_Opcode },
515    { Bad_Opcode },
516    { PREFIX_TABLE (PREFIX_EVEX_0F38C4) },
517    { Bad_Opcode },
518    { REG_TABLE (REG_EVEX_0F38C6) },
519    { REG_TABLE (REG_EVEX_0F38C7) },
520    /* C8 */
521    { PREFIX_TABLE (PREFIX_EVEX_0F38C8) },
522    { Bad_Opcode },
523    { PREFIX_TABLE (PREFIX_EVEX_0F38CA) },
524    { PREFIX_TABLE (PREFIX_EVEX_0F38CB) },
525    { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
526    { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
527    { Bad_Opcode },
528    { PREFIX_TABLE (PREFIX_EVEX_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    { PREFIX_TABLE (PREFIX_EVEX_0F38DC) },
544    { PREFIX_TABLE (PREFIX_EVEX_0F38DD) },
545    { PREFIX_TABLE (PREFIX_EVEX_0F38DE) },
546    { PREFIX_TABLE (PREFIX_EVEX_0F38DF) },
547    /* E0 */
548    { Bad_Opcode },
549    { Bad_Opcode },
550    { Bad_Opcode },
551    { Bad_Opcode },
552    { Bad_Opcode },
553    { Bad_Opcode },
554    { Bad_Opcode },
555    { Bad_Opcode },
556    /* E8 */
557    { Bad_Opcode },
558    { Bad_Opcode },
559    { Bad_Opcode },
560    { Bad_Opcode },
561    { Bad_Opcode },
562    { Bad_Opcode },
563    { Bad_Opcode },
564    { Bad_Opcode },
565    /* F0 */
566    { Bad_Opcode },
567    { Bad_Opcode },
568    { Bad_Opcode },
569    { Bad_Opcode },
570    { Bad_Opcode },
571    { Bad_Opcode },
572    { Bad_Opcode },
573    { Bad_Opcode },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3A00) },
588    { PREFIX_TABLE (PREFIX_EVEX_0F3A01) },
589    { Bad_Opcode },
590    { PREFIX_TABLE (PREFIX_EVEX_0F3A03) },
591    { PREFIX_TABLE (PREFIX_EVEX_0F3A04) },
592    { PREFIX_TABLE (PREFIX_EVEX_0F3A05) },
593    { Bad_Opcode },
594    { Bad_Opcode },
595    /* 08 */
596    { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
597    { PREFIX_TABLE (PREFIX_EVEX_0F3A09) },
598    { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
599    { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) },
600    { Bad_Opcode },
601    { Bad_Opcode },
602    { Bad_Opcode },
603    { PREFIX_TABLE (PREFIX_EVEX_0F3A0F) },
604    /* 10 */
605    { Bad_Opcode },
606    { Bad_Opcode },
607    { Bad_Opcode },
608    { Bad_Opcode },
609    { PREFIX_TABLE (PREFIX_EVEX_0F3A14) },
610    { PREFIX_TABLE (PREFIX_EVEX_0F3A15) },
611    { PREFIX_TABLE (PREFIX_EVEX_0F3A16) },
612    { PREFIX_TABLE (PREFIX_EVEX_0F3A17) },
613    /* 18 */
614    { PREFIX_TABLE (PREFIX_EVEX_0F3A18) },
615    { PREFIX_TABLE (PREFIX_EVEX_0F3A19) },
616    { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) },
617    { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) },
618    { Bad_Opcode },
619    { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) },
620    { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) },
621    { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) },
622    /* 20 */
623    { PREFIX_TABLE (PREFIX_EVEX_0F3A20) },
624    { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
625    { PREFIX_TABLE (PREFIX_EVEX_0F3A22) },
626    { PREFIX_TABLE (PREFIX_EVEX_0F3A23) },
627    { Bad_Opcode },
628    { PREFIX_TABLE (PREFIX_EVEX_0F3A25) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3A38) },
651    { PREFIX_TABLE (PREFIX_EVEX_0F3A39) },
652    { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) },
653    { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) },
654    { Bad_Opcode },
655    { Bad_Opcode },
656    { PREFIX_TABLE (PREFIX_EVEX_0F3A3E) },
657    { PREFIX_TABLE (PREFIX_EVEX_0F3A3F) },
658    /* 40 */
659    { Bad_Opcode },
660    { Bad_Opcode },
661    { PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
662    { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
663    { PREFIX_TABLE (PREFIX_EVEX_0F3A44) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3A50) },
678    { PREFIX_TABLE (PREFIX_EVEX_0F3A51) },
679    { Bad_Opcode },
680    { Bad_Opcode },
681    { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
682    { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3A70) },
714    { PREFIX_TABLE (PREFIX_EVEX_0F3A71) },
715    { PREFIX_TABLE (PREFIX_EVEX_0F3A72) },
716    { PREFIX_TABLE (PREFIX_EVEX_0F3A73) },
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    { Bad_Opcode },
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    { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) },
819    { PREFIX_TABLE (PREFIX_EVEX_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    { Bad_Opcode },
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};
876