Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5221 serge 1
#ifdef NEED_OPCODE_TABLE
2
 
3
static const struct dis386 evex_table[][256] = {
4
  /* EVEX_0F */
5
  {
6
    /* 00 */
7
    { Bad_Opcode },
8
    { Bad_Opcode },
9
    { Bad_Opcode },
10
    { Bad_Opcode },
11
    { Bad_Opcode },
12
    { Bad_Opcode },
13
    { Bad_Opcode },
14
    { Bad_Opcode },
15
    /* 08 */
16
    { Bad_Opcode },
17
    { Bad_Opcode },
18
    { Bad_Opcode },
19
    { Bad_Opcode },
20
    { Bad_Opcode },
21
    { Bad_Opcode },
22
    { Bad_Opcode },
23
    { Bad_Opcode },
24
    /* 10 */
25
    { PREFIX_TABLE (PREFIX_EVEX_0F10) },
26
    { PREFIX_TABLE (PREFIX_EVEX_0F11) },
27
    { PREFIX_TABLE (PREFIX_EVEX_0F12) },
28
    { PREFIX_TABLE (PREFIX_EVEX_0F13) },
29
    { PREFIX_TABLE (PREFIX_EVEX_0F14) },
30
    { PREFIX_TABLE (PREFIX_EVEX_0F15) },
31
    { PREFIX_TABLE (PREFIX_EVEX_0F16) },
32
    { PREFIX_TABLE (PREFIX_EVEX_0F17) },
33
    /* 18 */
34
    { Bad_Opcode },
35
    { Bad_Opcode },
36
    { Bad_Opcode },
37
    { Bad_Opcode },
38
    { Bad_Opcode },
39
    { Bad_Opcode },
40
    { Bad_Opcode },
41
    { Bad_Opcode },
42
    /* 20 */
43
    { Bad_Opcode },
44
    { Bad_Opcode },
45
    { Bad_Opcode },
46
    { Bad_Opcode },
47
    { Bad_Opcode },
48
    { Bad_Opcode },
49
    { Bad_Opcode },
50
    { Bad_Opcode },
51
    /* 28 */
52
    { PREFIX_TABLE (PREFIX_EVEX_0F28) },
53
    { PREFIX_TABLE (PREFIX_EVEX_0F29) },
54
    { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
55
    { PREFIX_TABLE (PREFIX_EVEX_0F2B) },
56
    { PREFIX_TABLE (PREFIX_EVEX_0F2C) },
57
    { PREFIX_TABLE (PREFIX_EVEX_0F2D) },
58
    { PREFIX_TABLE (PREFIX_EVEX_0F2E) },
59
    { PREFIX_TABLE (PREFIX_EVEX_0F2F) },
60
    /* 30 */
61
    { Bad_Opcode },
62
    { Bad_Opcode },
63
    { Bad_Opcode },
64
    { Bad_Opcode },
65
    { Bad_Opcode },
66
    { Bad_Opcode },
67
    { Bad_Opcode },
68
    { Bad_Opcode },
69
    /* 38 */
70
    { Bad_Opcode },
71
    { Bad_Opcode },
72
    { Bad_Opcode },
73
    { Bad_Opcode },
74
    { Bad_Opcode },
75
    { Bad_Opcode },
76
    { Bad_Opcode },
77
    { Bad_Opcode },
78
    /* 40 */
79
    { Bad_Opcode },
80
    { Bad_Opcode },
81
    { Bad_Opcode },
82
    { Bad_Opcode },
83
    { Bad_Opcode },
84
    { Bad_Opcode },
85
    { Bad_Opcode },
86
    { Bad_Opcode },
87
    /* 48 */
88
    { Bad_Opcode },
89
    { Bad_Opcode },
90
    { Bad_Opcode },
91
    { Bad_Opcode },
92
    { Bad_Opcode },
93
    { Bad_Opcode },
94
    { Bad_Opcode },
95
    { Bad_Opcode },
96
    /* 50 */
97
    { Bad_Opcode },
98
    { PREFIX_TABLE (PREFIX_EVEX_0F51) },
99
    { Bad_Opcode },
100
    { Bad_Opcode },
101
    { Bad_Opcode },
102
    { Bad_Opcode },
103
    { Bad_Opcode },
104
    { Bad_Opcode },
105
    /* 58 */
106
    { PREFIX_TABLE (PREFIX_EVEX_0F58) },
107
    { PREFIX_TABLE (PREFIX_EVEX_0F59) },
108
    { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
109
    { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
110
    { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
111
    { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
112
    { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
113
    { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
114
    /* 60 */
115
    { Bad_Opcode },
116
    { Bad_Opcode },
117
    { PREFIX_TABLE (PREFIX_EVEX_0F62) },
118
    { Bad_Opcode },
119
    { Bad_Opcode },
120
    { Bad_Opcode },
121
    { PREFIX_TABLE (PREFIX_EVEX_0F66) },
122
    { Bad_Opcode },
123
    /* 68 */
124
    { Bad_Opcode },
125
    { Bad_Opcode },
126
    { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
127
    { Bad_Opcode },
128
    { PREFIX_TABLE (PREFIX_EVEX_0F6C) },
129
    { PREFIX_TABLE (PREFIX_EVEX_0F6D) },
130
    { PREFIX_TABLE (PREFIX_EVEX_0F6E) },
131
    { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
132
    /* 70 */
133
    { PREFIX_TABLE (PREFIX_EVEX_0F70) },
134
    { Bad_Opcode },
135
    { REG_TABLE (REG_EVEX_0F72) },
136
    { REG_TABLE (REG_EVEX_0F73) },
137
    { Bad_Opcode },
138
    { Bad_Opcode },
139
    { PREFIX_TABLE (PREFIX_EVEX_0F76) },
140
    { Bad_Opcode },
141
    /* 78 */
142
    { PREFIX_TABLE (PREFIX_EVEX_0F78) },
143
    { PREFIX_TABLE (PREFIX_EVEX_0F79) },
144
    { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
145
    { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
146
    { Bad_Opcode },
147
    { Bad_Opcode },
148
    { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
149
    { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
150
    /* 80 */
151
    { Bad_Opcode },
152
    { Bad_Opcode },
153
    { Bad_Opcode },
154
    { Bad_Opcode },
155
    { Bad_Opcode },
156
    { Bad_Opcode },
157
    { Bad_Opcode },
158
    { Bad_Opcode },
159
    /* 88 */
160
    { Bad_Opcode },
161
    { Bad_Opcode },
162
    { Bad_Opcode },
163
    { Bad_Opcode },
164
    { Bad_Opcode },
165
    { Bad_Opcode },
166
    { Bad_Opcode },
167
    { Bad_Opcode },
168
    /* 90 */
169
    { Bad_Opcode },
170
    { Bad_Opcode },
171
    { Bad_Opcode },
172
    { Bad_Opcode },
173
    { Bad_Opcode },
174
    { Bad_Opcode },
175
    { Bad_Opcode },
176
    { Bad_Opcode },
177
    /* 98 */
178
    { Bad_Opcode },
179
    { Bad_Opcode },
180
    { Bad_Opcode },
181
    { Bad_Opcode },
182
    { Bad_Opcode },
183
    { Bad_Opcode },
184
    { Bad_Opcode },
185
    { Bad_Opcode },
186
    /* A0 */
187
    { Bad_Opcode },
188
    { Bad_Opcode },
189
    { Bad_Opcode },
190
    { Bad_Opcode },
191
    { Bad_Opcode },
192
    { Bad_Opcode },
193
    { Bad_Opcode },
194
    { Bad_Opcode },
195
    /* A8 */
196
    { Bad_Opcode },
197
    { Bad_Opcode },
198
    { Bad_Opcode },
199
    { Bad_Opcode },
200
    { Bad_Opcode },
201
    { Bad_Opcode },
202
    { Bad_Opcode },
203
    { Bad_Opcode },
204
    /* B0 */
205
    { Bad_Opcode },
206
    { Bad_Opcode },
207
    { Bad_Opcode },
208
    { Bad_Opcode },
209
    { Bad_Opcode },
210
    { Bad_Opcode },
211
    { Bad_Opcode },
212
    { Bad_Opcode },
213
    /* B8 */
214
    { Bad_Opcode },
215
    { Bad_Opcode },
216
    { Bad_Opcode },
217
    { Bad_Opcode },
218
    { Bad_Opcode },
219
    { Bad_Opcode },
220
    { Bad_Opcode },
221
    { Bad_Opcode },
222
    /* C0 */
223
    { Bad_Opcode },
224
    { Bad_Opcode },
225
    { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
226
    { Bad_Opcode },
227
    { Bad_Opcode },
228
    { Bad_Opcode },
229
    { PREFIX_TABLE (PREFIX_EVEX_0FC6) },
230
    { Bad_Opcode },
231
    /* C8 */
232
    { Bad_Opcode },
233
    { Bad_Opcode },
234
    { Bad_Opcode },
235
    { Bad_Opcode },
236
    { Bad_Opcode },
237
    { Bad_Opcode },
238
    { Bad_Opcode },
239
    { Bad_Opcode },
240
    /* D0 */
241
    { Bad_Opcode },
242
    { Bad_Opcode },
243
    { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
244
    { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
245
    { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
246
    { Bad_Opcode },
247
    { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
248
    { Bad_Opcode },
249
    /* D8 */
250
    { Bad_Opcode },
251
    { Bad_Opcode },
252
    { Bad_Opcode },
253
    { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
254
    { Bad_Opcode },
255
    { Bad_Opcode },
256
    { Bad_Opcode },
257
    { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
258
    /* E0 */
259
    { Bad_Opcode },
260
    { Bad_Opcode },
261
    { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
262
    { Bad_Opcode },
263
    { Bad_Opcode },
264
    { Bad_Opcode },
265
    { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
266
    { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
267
    /* E8 */
268
    { Bad_Opcode },
269
    { Bad_Opcode },
270
    { Bad_Opcode },
271
    { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
272
    { Bad_Opcode },
273
    { Bad_Opcode },
274
    { Bad_Opcode },
275
    { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
276
    /* F0 */
277
    { Bad_Opcode },
278
    { Bad_Opcode },
279
    { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
280
    { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
281
    { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
282
    { Bad_Opcode },
283
    { Bad_Opcode },
284
    { Bad_Opcode },
285
    /* F8 */
286
    { Bad_Opcode },
287
    { Bad_Opcode },
288
    { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
289
    { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
290
    { Bad_Opcode },
291
    { Bad_Opcode },
292
    { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
293
    { Bad_Opcode },
294
  },
295
  /* EVEX_0F38 */
296
  {
297
    /* 00 */
298
    { Bad_Opcode },
299
    { Bad_Opcode },
300
    { Bad_Opcode },
301
    { Bad_Opcode },
302
    { Bad_Opcode },
303
    { Bad_Opcode },
304
    { Bad_Opcode },
305
    { Bad_Opcode },
306
    /* 08 */
307
    { Bad_Opcode },
308
    { Bad_Opcode },
309
    { Bad_Opcode },
310
    { Bad_Opcode },
311
    { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
312
    { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
313
    { Bad_Opcode },
314
    { Bad_Opcode },
315
    /* 10 */
316
    { Bad_Opcode },
317
    { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
318
    { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
319
    { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
320
    { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
321
    { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
322
    { PREFIX_TABLE (PREFIX_EVEX_0F3816) },
323
    { Bad_Opcode },
324
    /* 18 */
325
    { PREFIX_TABLE (PREFIX_EVEX_0F3818) },
326
    { PREFIX_TABLE (PREFIX_EVEX_0F3819) },
327
    { PREFIX_TABLE (PREFIX_EVEX_0F381A) },
328
    { PREFIX_TABLE (PREFIX_EVEX_0F381B) },
329
    { Bad_Opcode },
330
    { Bad_Opcode },
331
    { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
332
    { PREFIX_TABLE (PREFIX_EVEX_0F381F) },
333
    /* 20 */
334
    { Bad_Opcode },
335
    { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
336
    { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
337
    { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
338
    { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
339
    { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
340
    { Bad_Opcode },
341
    { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
342
    /* 28 */
343
    { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
344
    { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
345
    { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
346
    { Bad_Opcode },
347
    { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
348
    { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
349
    { Bad_Opcode },
350
    { Bad_Opcode },
351
    /* 30 */
352
    { Bad_Opcode },
353
    { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
354
    { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
355
    { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
356
    { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
357
    { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
358
    { PREFIX_TABLE (PREFIX_EVEX_0F3836) },
359
    { PREFIX_TABLE (PREFIX_EVEX_0F3837) },
360
    /* 38 */
361
    { Bad_Opcode },
362
    { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
363
    { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
364
    { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
365
    { Bad_Opcode },
366
    { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
367
    { Bad_Opcode },
368
    { PREFIX_TABLE (PREFIX_EVEX_0F383F) },
369
    /* 40 */
370
    { PREFIX_TABLE (PREFIX_EVEX_0F3840) },
371
    { Bad_Opcode },
372
    { PREFIX_TABLE (PREFIX_EVEX_0F3842) },
373
    { PREFIX_TABLE (PREFIX_EVEX_0F3843) },
374
    { PREFIX_TABLE (PREFIX_EVEX_0F3844) },
375
    { PREFIX_TABLE (PREFIX_EVEX_0F3845) },
376
    { PREFIX_TABLE (PREFIX_EVEX_0F3846) },
377
    { PREFIX_TABLE (PREFIX_EVEX_0F3847) },
378
    /* 48 */
379
    { Bad_Opcode },
380
    { Bad_Opcode },
381
    { Bad_Opcode },
382
    { Bad_Opcode },
383
    { PREFIX_TABLE (PREFIX_EVEX_0F384C) },
384
    { PREFIX_TABLE (PREFIX_EVEX_0F384D) },
385
    { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
386
    { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
387
    /* 50 */
388
    { Bad_Opcode },
389
    { Bad_Opcode },
390
    { Bad_Opcode },
391
    { Bad_Opcode },
392
    { Bad_Opcode },
393
    { Bad_Opcode },
394
    { Bad_Opcode },
395
    { Bad_Opcode },
396
    /* 58 */
397
    { PREFIX_TABLE (PREFIX_EVEX_0F3858) },
398
    { PREFIX_TABLE (PREFIX_EVEX_0F3859) },
399
    { PREFIX_TABLE (PREFIX_EVEX_0F385A) },
400
    { PREFIX_TABLE (PREFIX_EVEX_0F385B) },
401
    { Bad_Opcode },
402
    { Bad_Opcode },
403
    { Bad_Opcode },
404
    { Bad_Opcode },
405
    /* 60 */
406
    { Bad_Opcode },
407
    { Bad_Opcode },
408
    { Bad_Opcode },
409
    { Bad_Opcode },
410
    { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
411
    { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
412
    { Bad_Opcode },
413
    { Bad_Opcode },
414
    /* 68 */
415
    { Bad_Opcode },
416
    { Bad_Opcode },
417
    { Bad_Opcode },
418
    { Bad_Opcode },
419
    { Bad_Opcode },
420
    { Bad_Opcode },
421
    { Bad_Opcode },
422
    { Bad_Opcode },
423
    /* 70 */
424
    { Bad_Opcode },
425
    { Bad_Opcode },
426
    { Bad_Opcode },
427
    { Bad_Opcode },
428
    { Bad_Opcode },
429
    { Bad_Opcode },
430
    { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
431
    { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
432
    /* 78 */
433
    { Bad_Opcode },
434
    { Bad_Opcode },
435
    { Bad_Opcode },
436
    { Bad_Opcode },
437
    { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
438
    { Bad_Opcode },
439
    { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
440
    { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
441
    /* 80 */
442
    { Bad_Opcode },
443
    { Bad_Opcode },
444
    { Bad_Opcode },
445
    { Bad_Opcode },
446
    { Bad_Opcode },
447
    { Bad_Opcode },
448
    { Bad_Opcode },
449
    { Bad_Opcode },
450
    /* 88 */
451
    { PREFIX_TABLE (PREFIX_EVEX_0F3888) },
452
    { PREFIX_TABLE (PREFIX_EVEX_0F3889) },
453
    { PREFIX_TABLE (PREFIX_EVEX_0F388A) },
454
    { PREFIX_TABLE (PREFIX_EVEX_0F388B) },
455
    { Bad_Opcode },
456
    { Bad_Opcode },
457
    { Bad_Opcode },
458
    { Bad_Opcode },
459
    /* 90 */
460
    { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
461
    { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
462
    { PREFIX_TABLE (PREFIX_EVEX_0F3892) },
463
    { PREFIX_TABLE (PREFIX_EVEX_0F3893) },
464
    { Bad_Opcode },
465
    { Bad_Opcode },
466
    { PREFIX_TABLE (PREFIX_EVEX_0F3896) },
467
    { PREFIX_TABLE (PREFIX_EVEX_0F3897) },
468
    /* 98 */
469
    { PREFIX_TABLE (PREFIX_EVEX_0F3898) },
470
    { PREFIX_TABLE (PREFIX_EVEX_0F3899) },
471
    { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
472
    { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
473
    { PREFIX_TABLE (PREFIX_EVEX_0F389C) },
474
    { PREFIX_TABLE (PREFIX_EVEX_0F389D) },
475
    { PREFIX_TABLE (PREFIX_EVEX_0F389E) },
476
    { PREFIX_TABLE (PREFIX_EVEX_0F389F) },
477
    /* A0 */
478
    { PREFIX_TABLE (PREFIX_EVEX_0F38A0) },
479
    { PREFIX_TABLE (PREFIX_EVEX_0F38A1) },
480
    { PREFIX_TABLE (PREFIX_EVEX_0F38A2) },
481
    { PREFIX_TABLE (PREFIX_EVEX_0F38A3) },
482
    { Bad_Opcode },
483
    { Bad_Opcode },
484
    { PREFIX_TABLE (PREFIX_EVEX_0F38A6) },
485
    { PREFIX_TABLE (PREFIX_EVEX_0F38A7) },
486
    /* A8 */
487
    { PREFIX_TABLE (PREFIX_EVEX_0F38A8) },
488
    { PREFIX_TABLE (PREFIX_EVEX_0F38A9) },
489
    { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
490
    { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
491
    { PREFIX_TABLE (PREFIX_EVEX_0F38AC) },
492
    { PREFIX_TABLE (PREFIX_EVEX_0F38AD) },
493
    { PREFIX_TABLE (PREFIX_EVEX_0F38AE) },
494
    { PREFIX_TABLE (PREFIX_EVEX_0F38AF) },
495
    /* B0 */
496
    { Bad_Opcode },
497
    { Bad_Opcode },
498
    { Bad_Opcode },
499
    { Bad_Opcode },
500
    { Bad_Opcode },
501
    { Bad_Opcode },
502
    { PREFIX_TABLE (PREFIX_EVEX_0F38B6) },
503
    { PREFIX_TABLE (PREFIX_EVEX_0F38B7) },
504
    /* B8 */
505
    { PREFIX_TABLE (PREFIX_EVEX_0F38B8) },
506
    { PREFIX_TABLE (PREFIX_EVEX_0F38B9) },
507
    { PREFIX_TABLE (PREFIX_EVEX_0F38BA) },
508
    { PREFIX_TABLE (PREFIX_EVEX_0F38BB) },
509
    { PREFIX_TABLE (PREFIX_EVEX_0F38BC) },
510
    { PREFIX_TABLE (PREFIX_EVEX_0F38BD) },
511
    { PREFIX_TABLE (PREFIX_EVEX_0F38BE) },
512
    { PREFIX_TABLE (PREFIX_EVEX_0F38BF) },
513
    /* C0 */
514
    { Bad_Opcode },
515
    { Bad_Opcode },
516
    { Bad_Opcode },
517
    { Bad_Opcode },
518
    { PREFIX_TABLE (PREFIX_EVEX_0F38C4) },
519
    { Bad_Opcode },
520
    { REG_TABLE (REG_EVEX_0F38C6) },
521
    { REG_TABLE (REG_EVEX_0F38C7) },
522
    /* C8 */
523
    { PREFIX_TABLE (PREFIX_EVEX_0F38C8) },
524
    { Bad_Opcode },
525
    { PREFIX_TABLE (PREFIX_EVEX_0F38CA) },
526
    { PREFIX_TABLE (PREFIX_EVEX_0F38CB) },
527
    { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
528
    { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
529
    { Bad_Opcode },
530
    { Bad_Opcode },
531
    /* D0 */
532
    { Bad_Opcode },
533
    { Bad_Opcode },
534
    { Bad_Opcode },
535
    { Bad_Opcode },
536
    { Bad_Opcode },
537
    { Bad_Opcode },
538
    { Bad_Opcode },
539
    { Bad_Opcode },
540
    /* D8 */
541
    { Bad_Opcode },
542
    { Bad_Opcode },
543
    { Bad_Opcode },
544
    { Bad_Opcode },
545
    { Bad_Opcode },
546
    { Bad_Opcode },
547
    { Bad_Opcode },
548
    { Bad_Opcode },
549
    /* E0 */
550
    { Bad_Opcode },
551
    { Bad_Opcode },
552
    { Bad_Opcode },
553
    { Bad_Opcode },
554
    { Bad_Opcode },
555
    { Bad_Opcode },
556
    { Bad_Opcode },
557
    { Bad_Opcode },
558
    /* E8 */
559
    { Bad_Opcode },
560
    { Bad_Opcode },
561
    { Bad_Opcode },
562
    { Bad_Opcode },
563
    { Bad_Opcode },
564
    { Bad_Opcode },
565
    { Bad_Opcode },
566
    { Bad_Opcode },
567
    /* F0 */
568
    { Bad_Opcode },
569
    { Bad_Opcode },
570
    { Bad_Opcode },
571
    { Bad_Opcode },
572
    { Bad_Opcode },
573
    { Bad_Opcode },
574
    { Bad_Opcode },
575
    { Bad_Opcode },
576
    /* F8 */
577
    { Bad_Opcode },
578
    { Bad_Opcode },
579
    { Bad_Opcode },
580
    { Bad_Opcode },
581
    { Bad_Opcode },
582
    { Bad_Opcode },
583
    { Bad_Opcode },
584
    { Bad_Opcode },
585
  },
586
  /* EVEX_0F3A */
587
  {
588
    /* 00 */
589
    { PREFIX_TABLE (PREFIX_EVEX_0F3A00) },
590
    { PREFIX_TABLE (PREFIX_EVEX_0F3A01) },
591
    { Bad_Opcode },
592
    { PREFIX_TABLE (PREFIX_EVEX_0F3A03) },
593
    { PREFIX_TABLE (PREFIX_EVEX_0F3A04) },
594
    { PREFIX_TABLE (PREFIX_EVEX_0F3A05) },
595
    { Bad_Opcode },
596
    { Bad_Opcode },
597
    /* 08 */
598
    { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
599
    { PREFIX_TABLE (PREFIX_EVEX_0F3A09) },
600
    { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
601
    { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) },
602
    { Bad_Opcode },
603
    { Bad_Opcode },
604
    { Bad_Opcode },
605
    { Bad_Opcode },
606
    /* 10 */
607
    { Bad_Opcode },
608
    { Bad_Opcode },
609
    { Bad_Opcode },
610
    { Bad_Opcode },
611
    { Bad_Opcode },
612
    { Bad_Opcode },
613
    { Bad_Opcode },
614
    { PREFIX_TABLE (PREFIX_EVEX_0F3A17) },
615
    /* 18 */
616
    { PREFIX_TABLE (PREFIX_EVEX_0F3A18) },
617
    { PREFIX_TABLE (PREFIX_EVEX_0F3A19) },
618
    { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) },
619
    { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) },
620
    { Bad_Opcode },
621
    { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) },
622
    { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) },
623
    { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) },
624
    /* 20 */
625
    { Bad_Opcode },
626
    { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
627
    { Bad_Opcode },
628
    { PREFIX_TABLE (PREFIX_EVEX_0F3A23) },
629
    { Bad_Opcode },
630
    { PREFIX_TABLE (PREFIX_EVEX_0F3A25) },
631
    { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
632
    { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
633
    /* 28 */
634
    { Bad_Opcode },
635
    { Bad_Opcode },
636
    { Bad_Opcode },
637
    { Bad_Opcode },
638
    { Bad_Opcode },
639
    { Bad_Opcode },
640
    { Bad_Opcode },
641
    { Bad_Opcode },
642
    /* 30 */
643
    { Bad_Opcode },
644
    { Bad_Opcode },
645
    { Bad_Opcode },
646
    { Bad_Opcode },
647
    { Bad_Opcode },
648
    { Bad_Opcode },
649
    { Bad_Opcode },
650
    { Bad_Opcode },
651
    /* 38 */
652
    { PREFIX_TABLE (PREFIX_EVEX_0F3A38) },
653
    { PREFIX_TABLE (PREFIX_EVEX_0F3A39) },
654
    { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) },
655
    { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) },
656
    { Bad_Opcode },
657
    { Bad_Opcode },
658
    { Bad_Opcode },
659
    { Bad_Opcode },
660
    /* 40 */
661
    { Bad_Opcode },
662
    { Bad_Opcode },
663
    { Bad_Opcode },
664
    { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
665
    { Bad_Opcode },
666
    { Bad_Opcode },
667
    { Bad_Opcode },
668
    { Bad_Opcode },
669
    /* 48 */
670
    { Bad_Opcode },
671
    { Bad_Opcode },
672
    { Bad_Opcode },
673
    { Bad_Opcode },
674
    { Bad_Opcode },
675
    { Bad_Opcode },
676
    { Bad_Opcode },
677
    { Bad_Opcode },
678
    /* 50 */
679
    { Bad_Opcode },
680
    { Bad_Opcode },
681
    { Bad_Opcode },
682
    { Bad_Opcode },
683
    { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
684
    { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
685
    { Bad_Opcode },
686
    { Bad_Opcode },
687
    /* 58 */
688
    { Bad_Opcode },
689
    { Bad_Opcode },
690
    { Bad_Opcode },
691
    { Bad_Opcode },
692
    { Bad_Opcode },
693
    { Bad_Opcode },
694
    { Bad_Opcode },
695
    { Bad_Opcode },
696
    /* 60 */
697
    { Bad_Opcode },
698
    { Bad_Opcode },
699
    { Bad_Opcode },
700
    { Bad_Opcode },
701
    { Bad_Opcode },
702
    { Bad_Opcode },
703
    { Bad_Opcode },
704
    { Bad_Opcode },
705
    /* 68 */
706
    { Bad_Opcode },
707
    { Bad_Opcode },
708
    { Bad_Opcode },
709
    { Bad_Opcode },
710
    { Bad_Opcode },
711
    { Bad_Opcode },
712
    { Bad_Opcode },
713
    { Bad_Opcode },
714
    /* 70 */
715
    { Bad_Opcode },
716
    { Bad_Opcode },
717
    { Bad_Opcode },
718
    { Bad_Opcode },
719
    { Bad_Opcode },
720
    { Bad_Opcode },
721
    { Bad_Opcode },
722
    { Bad_Opcode },
723
    /* 78 */
724
    { Bad_Opcode },
725
    { Bad_Opcode },
726
    { Bad_Opcode },
727
    { Bad_Opcode },
728
    { Bad_Opcode },
729
    { Bad_Opcode },
730
    { Bad_Opcode },
731
    { Bad_Opcode },
732
    /* 80 */
733
    { Bad_Opcode },
734
    { Bad_Opcode },
735
    { Bad_Opcode },
736
    { Bad_Opcode },
737
    { Bad_Opcode },
738
    { Bad_Opcode },
739
    { Bad_Opcode },
740
    { Bad_Opcode },
741
    /* 88 */
742
    { Bad_Opcode },
743
    { Bad_Opcode },
744
    { Bad_Opcode },
745
    { Bad_Opcode },
746
    { Bad_Opcode },
747
    { Bad_Opcode },
748
    { Bad_Opcode },
749
    { Bad_Opcode },
750
    /* 90 */
751
    { Bad_Opcode },
752
    { Bad_Opcode },
753
    { Bad_Opcode },
754
    { Bad_Opcode },
755
    { Bad_Opcode },
756
    { Bad_Opcode },
757
    { Bad_Opcode },
758
    { Bad_Opcode },
759
    /* 98 */
760
    { Bad_Opcode },
761
    { Bad_Opcode },
762
    { Bad_Opcode },
763
    { Bad_Opcode },
764
    { Bad_Opcode },
765
    { Bad_Opcode },
766
    { Bad_Opcode },
767
    { Bad_Opcode },
768
    /* A0 */
769
    { Bad_Opcode },
770
    { Bad_Opcode },
771
    { Bad_Opcode },
772
    { Bad_Opcode },
773
    { Bad_Opcode },
774
    { Bad_Opcode },
775
    { Bad_Opcode },
776
    { Bad_Opcode },
777
    /* A8 */
778
    { Bad_Opcode },
779
    { Bad_Opcode },
780
    { Bad_Opcode },
781
    { Bad_Opcode },
782
    { Bad_Opcode },
783
    { Bad_Opcode },
784
    { Bad_Opcode },
785
    { Bad_Opcode },
786
    /* B0 */
787
    { Bad_Opcode },
788
    { Bad_Opcode },
789
    { Bad_Opcode },
790
    { Bad_Opcode },
791
    { Bad_Opcode },
792
    { Bad_Opcode },
793
    { Bad_Opcode },
794
    { Bad_Opcode },
795
    /* B8 */
796
    { Bad_Opcode },
797
    { Bad_Opcode },
798
    { Bad_Opcode },
799
    { Bad_Opcode },
800
    { Bad_Opcode },
801
    { Bad_Opcode },
802
    { Bad_Opcode },
803
    { Bad_Opcode },
804
    /* C0 */
805
    { Bad_Opcode },
806
    { Bad_Opcode },
807
    { Bad_Opcode },
808
    { Bad_Opcode },
809
    { Bad_Opcode },
810
    { Bad_Opcode },
811
    { Bad_Opcode },
812
    { Bad_Opcode },
813
    /* C8 */
814
    { Bad_Opcode },
815
    { Bad_Opcode },
816
    { Bad_Opcode },
817
    { Bad_Opcode },
818
    { Bad_Opcode },
819
    { Bad_Opcode },
820
    { Bad_Opcode },
821
    { Bad_Opcode },
822
    /* D0 */
823
    { Bad_Opcode },
824
    { Bad_Opcode },
825
    { Bad_Opcode },
826
    { Bad_Opcode },
827
    { Bad_Opcode },
828
    { Bad_Opcode },
829
    { Bad_Opcode },
830
    { Bad_Opcode },
831
    /* D8 */
832
    { Bad_Opcode },
833
    { Bad_Opcode },
834
    { Bad_Opcode },
835
    { Bad_Opcode },
836
    { Bad_Opcode },
837
    { Bad_Opcode },
838
    { Bad_Opcode },
839
    { Bad_Opcode },
840
    /* E0 */
841
    { Bad_Opcode },
842
    { Bad_Opcode },
843
    { Bad_Opcode },
844
    { Bad_Opcode },
845
    { Bad_Opcode },
846
    { Bad_Opcode },
847
    { Bad_Opcode },
848
    { Bad_Opcode },
849
    /* E8 */
850
    { Bad_Opcode },
851
    { Bad_Opcode },
852
    { Bad_Opcode },
853
    { Bad_Opcode },
854
    { Bad_Opcode },
855
    { Bad_Opcode },
856
    { Bad_Opcode },
857
    { Bad_Opcode },
858
    /* F0 */
859
    { Bad_Opcode },
860
    { Bad_Opcode },
861
    { Bad_Opcode },
862
    { Bad_Opcode },
863
    { Bad_Opcode },
864
    { Bad_Opcode },
865
    { Bad_Opcode },
866
    { Bad_Opcode },
867
    /* F8 */
868
    { Bad_Opcode },
869
    { Bad_Opcode },
870
    { Bad_Opcode },
871
    { Bad_Opcode },
872
    { Bad_Opcode },
873
    { Bad_Opcode },
874
    { Bad_Opcode },
875
    { Bad_Opcode },
876
  },
877
};
878
#endif /* NEED_OPCODE_TABLE */
879
 
880
#ifdef NEED_REG_TABLE
881
  /* REG_EVEX_0F72 */
882
  {
883
    { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
884
    { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
885
    { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
886
    { Bad_Opcode },
887
    { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
888
    { Bad_Opcode },
889
    { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
890
  },
891
  /* REG_EVEX_0F73 */
892
  {
893
    { Bad_Opcode },
894
    { Bad_Opcode },
895
    { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
896
    { Bad_Opcode },
897
    { Bad_Opcode },
898
    { Bad_Opcode },
899
    { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
900
  },
901
  /* REG_EVEX_0F38C6 */
902
  {
903
    { Bad_Opcode },
904
    { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
905
    { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
906
    { Bad_Opcode },
907
    { Bad_Opcode },
908
    { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
909
    { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
910
  },
911
  /* REG_EVEX_0F38C7 */
912
  {
913
    { Bad_Opcode },
914
    { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
915
    { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
916
    { Bad_Opcode },
917
    { Bad_Opcode },
918
    { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
919
    { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
920
  },
921
#endif /* NEED_REG_TABLE */
922
 
923
#ifdef NEED_PREFIX_TABLE
924
  /* PREFIX_EVEX_0F10 */
925
  {
926
    { VEX_W_TABLE (EVEX_W_0F10_P_0) },
927
    { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
928
    { VEX_W_TABLE (EVEX_W_0F10_P_2) },
929
    { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
930
  },
931
  /* PREFIX_EVEX_0F11 */
932
  {
933
    { VEX_W_TABLE (EVEX_W_0F11_P_0) },
934
    { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
935
    { VEX_W_TABLE (EVEX_W_0F11_P_2) },
936
    { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
937
  },
938
  /* PREFIX_EVEX_0F12 */
939
  {
940
    { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
941
    { VEX_W_TABLE (EVEX_W_0F12_P_1) },
942
    { VEX_W_TABLE (EVEX_W_0F12_P_2) },
943
    { VEX_W_TABLE (EVEX_W_0F12_P_3) },
944
  },
945
  /* PREFIX_EVEX_0F13 */
946
  {
947
    { VEX_W_TABLE (EVEX_W_0F13_P_0) },
948
    { Bad_Opcode },
949
    { VEX_W_TABLE (EVEX_W_0F13_P_2) },
950
  },
951
  /* PREFIX_EVEX_0F14 */
952
  {
953
    { VEX_W_TABLE (EVEX_W_0F14_P_0) },
954
    { Bad_Opcode },
955
    { VEX_W_TABLE (EVEX_W_0F14_P_2) },
956
  },
957
  /* PREFIX_EVEX_0F15 */
958
  {
959
    { VEX_W_TABLE (EVEX_W_0F15_P_0) },
960
    { Bad_Opcode },
961
    { VEX_W_TABLE (EVEX_W_0F15_P_2) },
962
  },
963
  /* PREFIX_EVEX_0F16 */
964
  {
965
    { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
966
    { VEX_W_TABLE (EVEX_W_0F16_P_1) },
967
    { VEX_W_TABLE (EVEX_W_0F16_P_2) },
968
  },
969
  /* PREFIX_EVEX_0F17 */
970
  {
971
    { VEX_W_TABLE (EVEX_W_0F17_P_0) },
972
    { Bad_Opcode },
973
    { VEX_W_TABLE (EVEX_W_0F17_P_2) },
974
  },
975
  /* PREFIX_EVEX_0F28 */
976
  {
977
    { VEX_W_TABLE (EVEX_W_0F28_P_0) },
978
    { Bad_Opcode },
979
    { VEX_W_TABLE (EVEX_W_0F28_P_2) },
980
  },
981
  /* PREFIX_EVEX_0F29 */
982
  {
983
    { VEX_W_TABLE (EVEX_W_0F29_P_0) },
984
    { Bad_Opcode },
985
    { VEX_W_TABLE (EVEX_W_0F29_P_2) },
986
  },
987
  /* PREFIX_EVEX_0F2A */
988
  {
989
    { Bad_Opcode },
990
    { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
991
    { Bad_Opcode },
992
    { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
993
  },
994
  /* PREFIX_EVEX_0F2B */
995
  {
996
    { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
997
    { Bad_Opcode },
998
    { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
999
  },
1000
  /* PREFIX_EVEX_0F2C */
1001
  {
1002
    { Bad_Opcode },
1003
    { "vcvttss2si",	{ Gdq, EXxmm_md, EXxEVexS } },
1004
    { Bad_Opcode },
1005
    { "vcvttsd2si",	{ Gdq, EXxmm_mq, EXxEVexS } },
1006
  },
1007
  /* PREFIX_EVEX_0F2D */
1008
  {
1009
    { Bad_Opcode },
1010
    { "vcvtss2si",	{ Gdq, EXxmm_md, EXxEVexR } },
1011
    { Bad_Opcode },
1012
    { "vcvtsd2si",	{ Gdq, EXxmm_mq, EXxEVexR } },
1013
  },
1014
  /* PREFIX_EVEX_0F2E */
1015
  {
1016
    { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
1017
    { Bad_Opcode },
1018
    { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
1019
  },
1020
  /* PREFIX_EVEX_0F2F */
1021
  {
1022
    { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
1023
    { Bad_Opcode },
1024
    { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
1025
  },
1026
  /* PREFIX_EVEX_0F51 */
1027
  {
1028
    { VEX_W_TABLE (EVEX_W_0F51_P_0) },
1029
    { VEX_W_TABLE (EVEX_W_0F51_P_1) },
1030
    { VEX_W_TABLE (EVEX_W_0F51_P_2) },
1031
    { VEX_W_TABLE (EVEX_W_0F51_P_3) },
1032
  },
1033
  /* PREFIX_EVEX_0F58 */
1034
  {
1035
    { VEX_W_TABLE (EVEX_W_0F58_P_0) },
1036
    { VEX_W_TABLE (EVEX_W_0F58_P_1) },
1037
    { VEX_W_TABLE (EVEX_W_0F58_P_2) },
1038
    { VEX_W_TABLE (EVEX_W_0F58_P_3) },
1039
  },
1040
  /* PREFIX_EVEX_0F59 */
1041
  {
1042
    { VEX_W_TABLE (EVEX_W_0F59_P_0) },
1043
    { VEX_W_TABLE (EVEX_W_0F59_P_1) },
1044
    { VEX_W_TABLE (EVEX_W_0F59_P_2) },
1045
    { VEX_W_TABLE (EVEX_W_0F59_P_3) },
1046
  },
1047
  /* PREFIX_EVEX_0F5A */
1048
  {
1049
    { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
1050
    { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
1051
    { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
1052
    { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
1053
  },
1054
  /* PREFIX_EVEX_0F5B */
1055
  {
1056
    { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
1057
    { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
1058
    { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
1059
  },
1060
  /* PREFIX_EVEX_0F5C */
1061
  {
1062
    { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
1063
    { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
1064
    { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
1065
    { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
1066
  },
1067
  /* PREFIX_EVEX_0F5D */
1068
  {
1069
    { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
1070
    { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
1071
    { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
1072
    { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
1073
  },
1074
  /* PREFIX_EVEX_0F5E */
1075
  {
1076
    { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
1077
    { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
1078
    { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
1079
    { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
1080
  },
1081
  /* PREFIX_EVEX_0F5F */
1082
  {
1083
    { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
1084
    { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
1085
    { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
1086
    { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
1087
  },
1088
  /* PREFIX_EVEX_0F62 */
1089
  {
1090
    { Bad_Opcode },
1091
    { Bad_Opcode },
1092
    { VEX_W_TABLE (EVEX_W_0F62_P_2) },
1093
  },
1094
  /* PREFIX_EVEX_0F66 */
1095
  {
1096
    { Bad_Opcode },
1097
    { Bad_Opcode },
1098
    { VEX_W_TABLE (EVEX_W_0F66_P_2) },
1099
  },
1100
  /* PREFIX_EVEX_0F6A */
1101
  {
1102
    { Bad_Opcode },
1103
    { Bad_Opcode },
1104
    { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
1105
  },
1106
  /* PREFIX_EVEX_0F6C */
1107
  {
1108
    { Bad_Opcode },
1109
    { Bad_Opcode },
1110
    { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
1111
  },
1112
  /* PREFIX_EVEX_0F6D */
1113
  {
1114
    { Bad_Opcode },
1115
    { Bad_Opcode },
1116
    { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
1117
  },
1118
  /* PREFIX_EVEX_0F6E */
1119
  {
1120
    { Bad_Opcode },
1121
    { Bad_Opcode },
1122
    { VEX_W_TABLE (EVEX_W_0F6E_P_2) },
1123
  },
1124
  /* PREFIX_EVEX_0F6F */
1125
  {
1126
    { Bad_Opcode },
1127
    { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
1128
    { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
1129
  },
1130
  /* PREFIX_EVEX_0F70 */
1131
  {
1132
    { Bad_Opcode },
1133
    { Bad_Opcode },
1134
    { VEX_W_TABLE (EVEX_W_0F70_P_2) },
1135
  },
1136
  /* PREFIX_EVEX_0F72_REG_0 */
1137
  {
1138
    { Bad_Opcode },
1139
    { Bad_Opcode },
1140
    { "vpror%LW",	{ Vex, EXx, Ib } },
1141
  },
1142
  /* PREFIX_EVEX_0F72_REG_1 */
1143
  {
1144
    { Bad_Opcode },
1145
    { Bad_Opcode },
1146
    { "vprol%LW",	{ Vex, EXx, Ib } },
1147
  },
1148
  /* PREFIX_EVEX_0F72_REG_2 */
1149
  {
1150
    { Bad_Opcode },
1151
    { Bad_Opcode },
1152
    { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
1153
  },
1154
  /* PREFIX_EVEX_0F72_REG_4 */
1155
  {
1156
    { Bad_Opcode },
1157
    { Bad_Opcode },
1158
    { "vpsra%LW",	{ Vex, EXx, Ib } },
1159
  },
1160
  /* PREFIX_EVEX_0F72_REG_6 */
1161
  {
1162
    { Bad_Opcode },
1163
    { Bad_Opcode },
1164
    { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
1165
  },
1166
  /* PREFIX_EVEX_0F73_REG_2 */
1167
  {
1168
    { Bad_Opcode },
1169
    { Bad_Opcode },
1170
    { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
1171
  },
1172
  /* PREFIX_EVEX_0F73_REG_6 */
1173
  {
1174
    { Bad_Opcode },
1175
    { Bad_Opcode },
1176
    { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
1177
  },
1178
  /* PREFIX_EVEX_0F76 */
1179
  {
1180
    { Bad_Opcode },
1181
    { Bad_Opcode },
1182
    { VEX_W_TABLE (EVEX_W_0F76_P_2) },
1183
  },
1184
  /* PREFIX_EVEX_0F78 */
1185
  {
1186
    { VEX_W_TABLE (EVEX_W_0F78_P_0) },
1187
    { "vcvttss2usi",	{ Gdq, EXxmm_md, EXxEVexS } },
1188
    { Bad_Opcode },
1189
    { "vcvttsd2usi",	{ Gdq, EXxmm_mq, EXxEVexS } },
1190
  },
1191
  /* PREFIX_EVEX_0F79 */
1192
  {
1193
    { VEX_W_TABLE (EVEX_W_0F79_P_0) },
1194
    { "vcvtss2usi",	{ Gdq, EXxmm_md, EXxEVexR } },
1195
    { Bad_Opcode },
1196
    { "vcvtsd2usi",	{ Gdq, EXxmm_mq, EXxEVexR } },
1197
  },
1198
  /* PREFIX_EVEX_0F7A */
1199
  {
1200
    { Bad_Opcode },
1201
    { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
1202
    { Bad_Opcode },
1203
    { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
1204
  },
1205
  /* PREFIX_EVEX_0F7B */
1206
  {
1207
    { Bad_Opcode },
1208
    { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
1209
    { Bad_Opcode },
1210
    { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
1211
  },
1212
  /* PREFIX_EVEX_0F7E */
1213
  {
1214
    { Bad_Opcode },
1215
    { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
1216
    { VEX_W_TABLE (EVEX_W_0F7E_P_2) },
1217
  },
1218
  /* PREFIX_EVEX_0F7F */
1219
  {
1220
    { Bad_Opcode },
1221
    { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
1222
    { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
1223
  },
1224
 
1225
  /* PREFIX_EVEX_0FC2 */
1226
  {
1227
    { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
1228
    { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
1229
    { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
1230
    { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
1231
  },
1232
  /* PREFIX_EVEX_0FC6 */
1233
  {
1234
    { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
1235
    { Bad_Opcode },
1236
    { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
1237
  },
1238
  /* PREFIX_EVEX_0FD2 */
1239
  {
1240
    { Bad_Opcode },
1241
    { Bad_Opcode },
1242
    { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
1243
  },
1244
  /* PREFIX_EVEX_0FD3 */
1245
  {
1246
    { Bad_Opcode },
1247
    { Bad_Opcode },
1248
    { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
1249
  },
1250
  /* PREFIX_EVEX_0FD4 */
1251
  {
1252
    { Bad_Opcode },
1253
    { Bad_Opcode },
1254
    { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
1255
  },
1256
  /* PREFIX_EVEX_0FD6 */
1257
  {
1258
    { Bad_Opcode },
1259
    { Bad_Opcode },
1260
    { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
1261
  },
1262
  /* PREFIX_EVEX_0FDB */
1263
  {
1264
    { Bad_Opcode },
1265
    { Bad_Opcode },
1266
    { "vpand%LW",	{ XM, Vex, EXx } },
1267
  },
1268
  /* PREFIX_EVEX_0FDF */
1269
  {
1270
    { Bad_Opcode },
1271
    { Bad_Opcode },
1272
    { "vpandn%LW",	{ XM, Vex, EXx } },
1273
  },
1274
  /* PREFIX_EVEX_0FE2 */
1275
  {
1276
    { Bad_Opcode },
1277
    { Bad_Opcode },
1278
    { "vpsra%LW",	{ XM, Vex, EXxmm } },
1279
  },
1280
  /* PREFIX_EVEX_0FE6 */
1281
  {
1282
    { Bad_Opcode },
1283
    { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
1284
    { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
1285
    { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
1286
  },
1287
  /* PREFIX_EVEX_0FE7 */
1288
  {
1289
    { Bad_Opcode },
1290
    { Bad_Opcode },
1291
    { VEX_W_TABLE (EVEX_W_0FE7_P_2) },
1292
  },
1293
  /* PREFIX_EVEX_0FEB */
1294
  {
1295
    { Bad_Opcode },
1296
    { Bad_Opcode },
1297
    { "vpor%LW",	{ XM, Vex, EXx } },
1298
  },
1299
  /* PREFIX_EVEX_0FEF */
1300
  {
1301
    { Bad_Opcode },
1302
    { Bad_Opcode },
1303
    { "vpxor%LW",	{ XM, Vex, EXx } },
1304
  },
1305
  /* PREFIX_EVEX_0FF2 */
1306
  {
1307
    { Bad_Opcode },
1308
    { Bad_Opcode },
1309
    { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
1310
  },
1311
  /* PREFIX_EVEX_0FF3 */
1312
  {
1313
    { Bad_Opcode },
1314
    { Bad_Opcode },
1315
    { VEX_W_TABLE (EVEX_W_0FF3_P_2) },
1316
  },
1317
  /* PREFIX_EVEX_0FF4 */
1318
  {
1319
    { Bad_Opcode },
1320
    { Bad_Opcode },
1321
    { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
1322
  },
1323
  /* PREFIX_EVEX_0FFA */
1324
  {
1325
    { Bad_Opcode },
1326
    { Bad_Opcode },
1327
    { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
1328
  },
1329
  /* PREFIX_EVEX_0FFB */
1330
  {
1331
    { Bad_Opcode },
1332
    { Bad_Opcode },
1333
    { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
1334
  },
1335
  /* PREFIX_EVEX_0FFE */
1336
  {
1337
    { Bad_Opcode },
1338
    { Bad_Opcode },
1339
    { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
1340
  },
1341
 
1342
  /* PREFIX_EVEX_0F380C */
1343
  {
1344
    { Bad_Opcode },
1345
    { Bad_Opcode },
1346
    { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
1347
  },
1348
  /* PREFIX_EVEX_0F380D */
1349
  {
1350
    { Bad_Opcode },
1351
    { Bad_Opcode },
1352
    { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
1353
  },
1354
  /* PREFIX_EVEX_0F3811 */
1355
  {
1356
    { Bad_Opcode },
1357
    { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
1358
  },
1359
  /* PREFIX_EVEX_0F3812 */
1360
  {
1361
    { Bad_Opcode },
1362
    { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
1363
  },
1364
  /* PREFIX_EVEX_0F3813 */
1365
  {
1366
    { Bad_Opcode },
1367
    { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
1368
    { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
1369
  },
1370
  /* PREFIX_EVEX_0F3814 */
1371
  {
1372
    { Bad_Opcode },
1373
    { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
1374
    { "vprorv%LW",	{ XM, Vex, EXx } },
1375
  },
1376
  /* PREFIX_EVEX_0F3815 */
1377
  {
1378
    { Bad_Opcode },
1379
    { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
1380
    { "vprolv%LW",	{ XM, Vex, EXx } },
1381
  },
1382
  /* PREFIX_EVEX_0F3816 */
1383
  {
1384
    { Bad_Opcode },
1385
    { Bad_Opcode },
1386
    { "vpermp%XW",	{ XM, Vex, EXx } },
1387
  },
1388
  /* PREFIX_EVEX_0F3818 */
1389
  {
1390
    { Bad_Opcode },
1391
    { Bad_Opcode },
1392
    { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
1393
  },
1394
  /* PREFIX_EVEX_0F3819 */
1395
  {
1396
    { Bad_Opcode },
1397
    { Bad_Opcode },
1398
    { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
1399
  },
1400
  /* PREFIX_EVEX_0F381A */
1401
  {
1402
    { Bad_Opcode },
1403
    { Bad_Opcode },
1404
    { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
1405
  },
1406
  /* PREFIX_EVEX_0F381B */
1407
  {
1408
    { Bad_Opcode },
1409
    { Bad_Opcode },
1410
    { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
1411
  },
1412
  /* PREFIX_EVEX_0F381E */
1413
  {
1414
    { Bad_Opcode },
1415
    { Bad_Opcode },
1416
    { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
1417
  },
1418
  /* PREFIX_EVEX_0F381F */
1419
  {
1420
    { Bad_Opcode },
1421
    { Bad_Opcode },
1422
    { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
1423
  },
1424
  /* PREFIX_EVEX_0F3821 */
1425
  {
1426
    { Bad_Opcode },
1427
    { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
1428
    { "vpmovsxbd",	{ XM, EXxmmqd } },
1429
  },
1430
  /* PREFIX_EVEX_0F3822 */
1431
  {
1432
    { Bad_Opcode },
1433
    { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
1434
    { "vpmovsxbq",	{ XM, EXxmmdw } },
1435
  },
1436
  /* PREFIX_EVEX_0F3823 */
1437
  {
1438
    { Bad_Opcode },
1439
    { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
1440
    { "vpmovsxwd",	{ XM, EXxmmq } },
1441
  },
1442
  /* PREFIX_EVEX_0F3824 */
1443
  {
1444
    { Bad_Opcode },
1445
    { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
1446
    { "vpmovsxwq",	{ XM, EXxmmqd } },
1447
  },
1448
  /* PREFIX_EVEX_0F3825 */
1449
  {
1450
    { Bad_Opcode },
1451
    { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
1452
    { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
1453
  },
1454
  /* PREFIX_EVEX_0F3827 */
1455
  {
1456
    { Bad_Opcode },
1457
    { "vptestnm%LW",	{ XMask, Vex, EXx } },
1458
    { "vptestm%LW",	{ XMask, Vex, EXx } },
1459
  },
1460
  /* PREFIX_EVEX_0F3828 */
1461
  {
1462
    { Bad_Opcode },
1463
    { Bad_Opcode },
1464
    { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
1465
  },
1466
  /* PREFIX_EVEX_0F3829 */
1467
  {
1468
    { Bad_Opcode },
1469
    { Bad_Opcode },
1470
    { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
1471
  },
1472
  /* PREFIX_EVEX_0F382A */
1473
  {
1474
    { Bad_Opcode },
1475
    { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
1476
    { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
1477
  },
1478
  /* PREFIX_EVEX_0F382C */
1479
  {
1480
    { Bad_Opcode },
1481
    { Bad_Opcode },
1482
    { "vscalefp%XW",	{ XM, Vex, EXx, EXxEVexR } },
1483
  },
1484
  /* PREFIX_EVEX_0F382D */
1485
  {
1486
    { Bad_Opcode },
1487
    { Bad_Opcode },
1488
    { "vscalefs%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1489
  },
1490
  /* PREFIX_EVEX_0F3831 */
1491
  {
1492
    { Bad_Opcode },
1493
    { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
1494
    { "vpmovzxbd",	{ XM, EXxmmqd } },
1495
  },
1496
  /* PREFIX_EVEX_0F3832 */
1497
  {
1498
    { Bad_Opcode },
1499
    { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
1500
    { "vpmovzxbq",	{ XM, EXxmmdw } },
1501
  },
1502
  /* PREFIX_EVEX_0F3833 */
1503
  {
1504
    { Bad_Opcode },
1505
    { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
1506
    { "vpmovzxwd",	{ XM, EXxmmq } },
1507
  },
1508
  /* PREFIX_EVEX_0F3834 */
1509
  {
1510
    { Bad_Opcode },
1511
    { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
1512
    { "vpmovzxwq",	{ XM, EXxmmqd } },
1513
  },
1514
  /* PREFIX_EVEX_0F3835 */
1515
  {
1516
    { Bad_Opcode },
1517
    { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
1518
    { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
1519
  },
1520
  /* PREFIX_EVEX_0F3836 */
1521
  {
1522
    { Bad_Opcode },
1523
    { Bad_Opcode },
1524
    { "vperm%LW",	{ XM, Vex, EXx } },
1525
  },
1526
  /* PREFIX_EVEX_0F3837 */
1527
  {
1528
    { Bad_Opcode },
1529
    { Bad_Opcode },
1530
    { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
1531
  },
1532
  /* PREFIX_EVEX_0F3839 */
1533
  {
1534
    { Bad_Opcode },
1535
    { Bad_Opcode },
1536
    { "vpmins%LW",	{ XM, Vex, EXx } },
1537
  },
1538
  /* PREFIX_EVEX_0F383A */
1539
  {
1540
    { Bad_Opcode },
1541
    { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
1542
  },
1543
  /* PREFIX_EVEX_0F383B */
1544
  {
1545
    { Bad_Opcode },
1546
    { Bad_Opcode },
1547
    { "vpminu%LW",	{ XM, Vex, EXx } },
1548
  },
1549
  /* PREFIX_EVEX_0F383D */
1550
  {
1551
    { Bad_Opcode },
1552
    { Bad_Opcode },
1553
    { "vpmaxs%LW",	{ XM, Vex, EXx } },
1554
  },
1555
  /* PREFIX_EVEX_0F383F */
1556
  {
1557
    { Bad_Opcode },
1558
    { Bad_Opcode },
1559
    { "vpmaxu%LW",	{ XM, Vex, EXx } },
1560
  },
1561
  /* PREFIX_EVEX_0F3840 */
1562
  {
1563
    { Bad_Opcode },
1564
    { Bad_Opcode },
1565
    { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
1566
  },
1567
  /* PREFIX_EVEX_0F3842 */
1568
  {
1569
    { Bad_Opcode },
1570
    { Bad_Opcode },
1571
    { "vgetexpp%XW",	{ XM, EXx, EXxEVexS } },
1572
  },
1573
  /* PREFIX_EVEX_0F3843 */
1574
  {
1575
    { Bad_Opcode },
1576
    { Bad_Opcode },
1577
    { "vgetexps%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
1578
  },
1579
  /* PREFIX_EVEX_0F3844 */
1580
  {
1581
    { Bad_Opcode },
1582
    { Bad_Opcode },
1583
    { "vplzcnt%LW",	{ XM, EXx } },
1584
  },
1585
  /* PREFIX_EVEX_0F3845 */
1586
  {
1587
    { Bad_Opcode },
1588
    { Bad_Opcode },
1589
    { "vpsrlv%LW",	{ XM, Vex, EXx } },
1590
  },
1591
  /* PREFIX_EVEX_0F3846 */
1592
  {
1593
    { Bad_Opcode },
1594
    { Bad_Opcode },
1595
    { "vpsrav%LW",	{ XM, Vex, EXx } },
1596
  },
1597
  /* PREFIX_EVEX_0F3847 */
1598
  {
1599
    { Bad_Opcode },
1600
    { Bad_Opcode },
1601
    { "vpsllv%LW",	{ XM, Vex, EXx } },
1602
  },
1603
  /* PREFIX_EVEX_0F384C */
1604
  {
1605
    { Bad_Opcode },
1606
    { Bad_Opcode },
1607
    { "vrcp14p%XW",	{ XM, EXx } },
1608
  },
1609
  /* PREFIX_EVEX_0F384D */
1610
  {
1611
    { Bad_Opcode },
1612
    { Bad_Opcode },
1613
    { "vrcp14s%XW",	{ XMScalar, VexScalar, EXxmm_mdq } },
1614
  },
1615
  /* PREFIX_EVEX_0F384E */
1616
  {
1617
    { Bad_Opcode },
1618
    { Bad_Opcode },
1619
    { "vrsqrt14p%XW",	{ XM, EXx } },
1620
  },
1621
  /* PREFIX_EVEX_0F384F */
1622
  {
1623
    { Bad_Opcode },
1624
    { Bad_Opcode },
1625
    { "vrsqrt14s%XW",	{ XMScalar, VexScalar, EXxmm_mdq } },
1626
  },
1627
  /* PREFIX_EVEX_0F3858 */
1628
  {
1629
    { Bad_Opcode },
1630
    { Bad_Opcode },
1631
    { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
1632
  },
1633
  /* PREFIX_EVEX_0F3859 */
1634
  {
1635
    { Bad_Opcode },
1636
    { Bad_Opcode },
1637
    { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
1638
  },
1639
  /* PREFIX_EVEX_0F385A */
1640
  {
1641
    { Bad_Opcode },
1642
    { Bad_Opcode },
1643
    { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
1644
  },
1645
  /* PREFIX_EVEX_0F385B */
1646
  {
1647
    { Bad_Opcode },
1648
    { Bad_Opcode },
1649
    { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
1650
  },
1651
  /* PREFIX_EVEX_0F3864 */
1652
  {
1653
    { Bad_Opcode },
1654
    { Bad_Opcode },
1655
    { "vpblendm%LW",	{ XM, Vex, EXx } },
1656
  },
1657
  /* PREFIX_EVEX_0F3865 */
1658
  {
1659
    { Bad_Opcode },
1660
    { Bad_Opcode },
1661
    { "vblendmp%XW",	{ XM, Vex, EXx } },
1662
  },
1663
  /* PREFIX_EVEX_0F3876 */
1664
  {
1665
    { Bad_Opcode },
1666
    { Bad_Opcode },
1667
    { "vpermi2%LW",	{ XM, Vex, EXx } },
1668
  },
1669
  /* PREFIX_EVEX_0F3877 */
1670
  {
1671
    { Bad_Opcode },
1672
    { Bad_Opcode },
1673
    { "vpermi2p%XW",	{ XM, Vex, EXx } },
1674
  },
1675
  /* PREFIX_EVEX_0F387C */
1676
  {
1677
    { Bad_Opcode },
1678
    { Bad_Opcode },
1679
    { "vpbroadcast%LW",	{ XM, Rdq } },
1680
  },
1681
  /* PREFIX_EVEX_0F387E */
1682
  {
1683
    { Bad_Opcode },
1684
    { Bad_Opcode },
1685
    { "vpermt2%LW",	{ XM, Vex, EXx } },
1686
  },
1687
  /* PREFIX_EVEX_0F387F */
1688
  {
1689
    { Bad_Opcode },
1690
    { Bad_Opcode },
1691
    { "vpermt2p%XW",	{ XM, Vex, EXx } },
1692
  },
1693
  /* PREFIX_EVEX_0F3888 */
1694
  {
1695
    { Bad_Opcode },
1696
    { Bad_Opcode },
1697
    { "vexpandp%XW",	{ XM, EXEvexXGscat } },
1698
  },
1699
  /* PREFIX_EVEX_0F3889 */
1700
  {
1701
    { Bad_Opcode },
1702
    { Bad_Opcode },
1703
    { "vpexpand%LW",	{ XM, EXEvexXGscat } },
1704
  },
1705
  /* PREFIX_EVEX_0F388A */
1706
  {
1707
    { Bad_Opcode },
1708
    { Bad_Opcode },
1709
    { "vcompressp%XW",	{ EXEvexXGscat, XM } },
1710
  },
1711
  /* PREFIX_EVEX_0F388B */
1712
  {
1713
    { Bad_Opcode },
1714
    { Bad_Opcode },
1715
    { "vpcompress%LW",	{ EXEvexXGscat, XM } },
1716
  },
1717
  /* PREFIX_EVEX_0F3890 */
1718
  {
1719
    { Bad_Opcode },
1720
    { Bad_Opcode },
1721
    { "vpgatherd%LW",	{ XM, MVexVSIBDWpX } },
1722
  },
1723
  /* PREFIX_EVEX_0F3891 */
1724
  {
1725
    { Bad_Opcode },
1726
    { Bad_Opcode },
1727
    { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
1728
  },
1729
  /* PREFIX_EVEX_0F3892 */
1730
  {
1731
    { Bad_Opcode },
1732
    { Bad_Opcode },
1733
    { "vgatherdp%XW",	{ XM, MVexVSIBDWpX} },
1734
  },
1735
  /* PREFIX_EVEX_0F3893 */
1736
  {
1737
    { Bad_Opcode },
1738
    { Bad_Opcode },
1739
    { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
1740
  },
1741
  /* PREFIX_EVEX_0F3896 */
1742
  {
1743
    { Bad_Opcode },
1744
    { Bad_Opcode },
1745
    { "vfmaddsub132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1746
  },
1747
  /* PREFIX_EVEX_0F3897 */
1748
  {
1749
    { Bad_Opcode },
1750
    { Bad_Opcode },
1751
    { "vfmsubadd132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1752
  },
1753
  /* PREFIX_EVEX_0F3898 */
1754
  {
1755
    { Bad_Opcode },
1756
    { Bad_Opcode },
1757
    { "vfmadd132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1758
  },
1759
  /* PREFIX_EVEX_0F3899 */
1760
  {
1761
    { Bad_Opcode },
1762
    { Bad_Opcode },
1763
    { "vfmadd132s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1764
  },
1765
  /* PREFIX_EVEX_0F389A */
1766
  {
1767
    { Bad_Opcode },
1768
    { Bad_Opcode },
1769
    { "vfmsub132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1770
  },
1771
  /* PREFIX_EVEX_0F389B */
1772
  {
1773
    { Bad_Opcode },
1774
    { Bad_Opcode },
1775
    { "vfmsub132s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1776
  },
1777
  /* PREFIX_EVEX_0F389C */
1778
  {
1779
    { Bad_Opcode },
1780
    { Bad_Opcode },
1781
    { "vfnmadd132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1782
  },
1783
  /* PREFIX_EVEX_0F389D */
1784
  {
1785
    { Bad_Opcode },
1786
    { Bad_Opcode },
1787
    { "vfnmadd132s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1788
  },
1789
  /* PREFIX_EVEX_0F389E */
1790
  {
1791
    { Bad_Opcode },
1792
    { Bad_Opcode },
1793
    { "vfnmsub132p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1794
  },
1795
  /* PREFIX_EVEX_0F389F */
1796
  {
1797
    { Bad_Opcode },
1798
    { Bad_Opcode },
1799
    { "vfnmsub132s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1800
  },
1801
  /* PREFIX_EVEX_0F38A0 */
1802
  {
1803
    { Bad_Opcode },
1804
    { Bad_Opcode },
1805
    { "vpscatterd%LW",	{ MVexVSIBDWpX, XM } },
1806
  },
1807
  /* PREFIX_EVEX_0F38A1 */
1808
  {
1809
    { Bad_Opcode },
1810
    { Bad_Opcode },
1811
    { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
1812
  },
1813
  /* PREFIX_EVEX_0F38A2 */
1814
  {
1815
    { Bad_Opcode },
1816
    { Bad_Opcode },
1817
    { "vscatterdp%XW",	{ MVexVSIBDWpX, XM } },
1818
  },
1819
  /* PREFIX_EVEX_0F38A3 */
1820
  {
1821
    { Bad_Opcode },
1822
    { Bad_Opcode },
1823
    { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
1824
  },
1825
  /* PREFIX_EVEX_0F38A6 */
1826
  {
1827
    { Bad_Opcode },
1828
    { Bad_Opcode },
1829
    { "vfmaddsub213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1830
  },
1831
  /* PREFIX_EVEX_0F38A7 */
1832
  {
1833
    { Bad_Opcode },
1834
    { Bad_Opcode },
1835
    { "vfmsubadd213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1836
  },
1837
  /* PREFIX_EVEX_0F38A8 */
1838
  {
1839
    { Bad_Opcode },
1840
    { Bad_Opcode },
1841
    { "vfmadd213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1842
  },
1843
  /* PREFIX_EVEX_0F38A9 */
1844
  {
1845
    { Bad_Opcode },
1846
    { Bad_Opcode },
1847
    { "vfmadd213s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1848
  },
1849
  /* PREFIX_EVEX_0F38AA */
1850
  {
1851
    { Bad_Opcode },
1852
    { Bad_Opcode },
1853
    { "vfmsub213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1854
  },
1855
  /* PREFIX_EVEX_0F38AB */
1856
  {
1857
    { Bad_Opcode },
1858
    { Bad_Opcode },
1859
    { "vfmsub213s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1860
  },
1861
  /* PREFIX_EVEX_0F38AC */
1862
  {
1863
    { Bad_Opcode },
1864
    { Bad_Opcode },
1865
    { "vfnmadd213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1866
  },
1867
  /* PREFIX_EVEX_0F38AD */
1868
  {
1869
    { Bad_Opcode },
1870
    { Bad_Opcode },
1871
    { "vfnmadd213s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1872
  },
1873
  /* PREFIX_EVEX_0F38AE */
1874
  {
1875
    { Bad_Opcode },
1876
    { Bad_Opcode },
1877
    { "vfnmsub213p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1878
  },
1879
  /* PREFIX_EVEX_0F38AF */
1880
  {
1881
    { Bad_Opcode },
1882
    { Bad_Opcode },
1883
    { "vfnmsub213s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1884
  },
1885
  /* PREFIX_EVEX_0F38B6 */
1886
  {
1887
    { Bad_Opcode },
1888
    { Bad_Opcode },
1889
    { "vfmaddsub231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1890
  },
1891
  /* PREFIX_EVEX_0F38B7 */
1892
  {
1893
    { Bad_Opcode },
1894
    { Bad_Opcode },
1895
    { "vfmsubadd231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1896
  },
1897
  /* PREFIX_EVEX_0F38B8 */
1898
  {
1899
    { Bad_Opcode },
1900
    { Bad_Opcode },
1901
    { "vfmadd231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1902
  },
1903
  /* PREFIX_EVEX_0F38B9 */
1904
  {
1905
    { Bad_Opcode },
1906
    { Bad_Opcode },
1907
    { "vfmadd231s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1908
  },
1909
  /* PREFIX_EVEX_0F38BA */
1910
  {
1911
    { Bad_Opcode },
1912
    { Bad_Opcode },
1913
    { "vfmsub231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1914
  },
1915
  /* PREFIX_EVEX_0F38BB */
1916
  {
1917
    { Bad_Opcode },
1918
    { Bad_Opcode },
1919
    { "vfmsub231s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1920
  },
1921
  /* PREFIX_EVEX_0F38BC */
1922
  {
1923
    { Bad_Opcode },
1924
    { Bad_Opcode },
1925
    { "vfnmadd231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1926
  },
1927
  /* PREFIX_EVEX_0F38BD */
1928
  {
1929
    { Bad_Opcode },
1930
    { Bad_Opcode },
1931
    { "vfnmadd231s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1932
  },
1933
  /* PREFIX_EVEX_0F38BE */
1934
  {
1935
    { Bad_Opcode },
1936
    { Bad_Opcode },
1937
    { "vfnmsub231p%XW",	{ XM, Vex, EXx, EXxEVexR } },
1938
  },
1939
  /* PREFIX_EVEX_0F38BF */
1940
  {
1941
    { Bad_Opcode },
1942
    { Bad_Opcode },
1943
    { "vfnmsub231s%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1944
  },
1945
  /* PREFIX_EVEX_0F38C4 */
1946
  {
1947
    { Bad_Opcode },
1948
    { Bad_Opcode },
1949
    { "vpconflict%LW",	{ XM, EXx } },
1950
  },
1951
  /* PREFIX_EVEX_0F38C6_REG_1 */
1952
  {
1953
    { Bad_Opcode },
1954
    { Bad_Opcode },
1955
    { "vgatherpf0dp%XW",  { MVexVSIBDWpX } },
1956
  },
1957
  /* PREFIX_EVEX_0F38C6_REG_2 */
1958
  {
1959
    { Bad_Opcode },
1960
    { Bad_Opcode },
1961
    { "vgatherpf1dp%XW",  { MVexVSIBDWpX } },
1962
  },
1963
  /* PREFIX_EVEX_0F38C6_REG_5 */
1964
  {
1965
    { Bad_Opcode },
1966
    { Bad_Opcode },
1967
    { "vscatterpf0dp%XW",  { MVexVSIBDWpX } },
1968
  },
1969
  /* PREFIX_EVEX_0F38C6_REG_6 */
1970
  {
1971
    { Bad_Opcode },
1972
    { Bad_Opcode },
1973
    { "vscatterpf1dp%XW",  { MVexVSIBDWpX } },
1974
  },
1975
  /* PREFIX_EVEX_0F38C7_REG_1 */
1976
  {
1977
    { Bad_Opcode },
1978
    { Bad_Opcode },
1979
    { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
1980
  },
1981
  /* PREFIX_EVEX_0F38C7_REG_2 */
1982
  {
1983
    { Bad_Opcode },
1984
    { Bad_Opcode },
1985
    { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
1986
  },
1987
  /* PREFIX_EVEX_0F38C7_REG_5 */
1988
  {
1989
    { Bad_Opcode },
1990
    { Bad_Opcode },
1991
    { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
1992
  },
1993
  /* PREFIX_EVEX_0F38C7_REG_6 */
1994
  {
1995
    { Bad_Opcode },
1996
    { Bad_Opcode },
1997
    { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
1998
  },
1999
  /* PREFIX_EVEX_0F38C8 */
2000
  {
2001
    { Bad_Opcode },
2002
    { Bad_Opcode },
2003
    { "vexp2p%XW",        { XM, EXx, EXxEVexS } },
2004
  },
2005
  /* PREFIX_EVEX_0F38CA */
2006
  {
2007
    { Bad_Opcode },
2008
    { Bad_Opcode },
2009
    { "vrcp28p%XW",       { XM, EXx, EXxEVexS } },
2010
  },
2011
  /* PREFIX_EVEX_0F38CB */
2012
  {
2013
    { Bad_Opcode },
2014
    { Bad_Opcode },
2015
    { "vrcp28s%XW",       { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2016
  },
2017
  /* PREFIX_EVEX_0F38CC */
2018
  {
2019
    { Bad_Opcode },
2020
    { Bad_Opcode },
2021
    { "vrsqrt28p%XW",     { XM, EXx, EXxEVexS } },
2022
  },
2023
  /* PREFIX_EVEX_0F38CD */
2024
  {
2025
    { Bad_Opcode },
2026
    { Bad_Opcode },
2027
    { "vrsqrt28s%XW",     { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2028
  },
2029
  /* PREFIX_EVEX_0F3A00 */
2030
  {
2031
    { Bad_Opcode },
2032
    { Bad_Opcode },
2033
    { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
2034
  },
2035
  /* PREFIX_EVEX_0F3A01 */
2036
  {
2037
    { Bad_Opcode },
2038
    { Bad_Opcode },
2039
    { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
2040
  },
2041
  /* PREFIX_EVEX_0F3A03 */
2042
  {
2043
    { Bad_Opcode },
2044
    { Bad_Opcode },
2045
    { "valign%LW",	{ XM, Vex, EXx, Ib } },
2046
  },
2047
  /* PREFIX_EVEX_0F3A04 */
2048
  {
2049
    { Bad_Opcode },
2050
    { Bad_Opcode },
2051
    { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
2052
  },
2053
  /* PREFIX_EVEX_0F3A05 */
2054
  {
2055
    { Bad_Opcode },
2056
    { Bad_Opcode },
2057
    { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
2058
  },
2059
  /* PREFIX_EVEX_0F3A08 */
2060
  {
2061
    { Bad_Opcode },
2062
    { Bad_Opcode },
2063
    { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
2064
  },
2065
  /* PREFIX_EVEX_0F3A09 */
2066
  {
2067
    { Bad_Opcode },
2068
    { Bad_Opcode },
2069
    { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
2070
  },
2071
  /* PREFIX_EVEX_0F3A0A */
2072
  {
2073
    { Bad_Opcode },
2074
    { Bad_Opcode },
2075
    { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
2076
  },
2077
  /* PREFIX_EVEX_0F3A0B */
2078
  {
2079
    { Bad_Opcode },
2080
    { Bad_Opcode },
2081
    { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
2082
  },
2083
  /* PREFIX_EVEX_0F3A17 */
2084
  {
2085
    { Bad_Opcode },
2086
    { Bad_Opcode },
2087
    { "vextractps",	{ Edqd, XMM, Ib } },
2088
  },
2089
  /* PREFIX_EVEX_0F3A18 */
2090
  {
2091
    { Bad_Opcode },
2092
    { Bad_Opcode },
2093
    { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
2094
  },
2095
  /* PREFIX_EVEX_0F3A19 */
2096
  {
2097
    { Bad_Opcode },
2098
    { Bad_Opcode },
2099
    { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
2100
  },
2101
  /* PREFIX_EVEX_0F3A1A */
2102
  {
2103
    { Bad_Opcode },
2104
    { Bad_Opcode },
2105
    { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
2106
  },
2107
  /* PREFIX_EVEX_0F3A1B */
2108
  {
2109
    { Bad_Opcode },
2110
    { Bad_Opcode },
2111
    { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
2112
  },
2113
  /* PREFIX_EVEX_0F3A1D */
2114
  {
2115
    { Bad_Opcode },
2116
    { Bad_Opcode },
2117
    { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
2118
  },
2119
  /* PREFIX_EVEX_0F3A1E */
2120
  {
2121
    { Bad_Opcode },
2122
    { Bad_Opcode },
2123
    { "vpcmpu%LW",	{ XMask, Vex, EXx, VPCMP } },
2124
  },
2125
  /* PREFIX_EVEX_0F3A1F */
2126
  {
2127
    { Bad_Opcode },
2128
    { Bad_Opcode },
2129
    { "vpcmp%LW",	{ XMask, Vex, EXx, VPCMP } },
2130
  },
2131
  /* PREFIX_EVEX_0F3A21 */
2132
  {
2133
    { Bad_Opcode },
2134
    { Bad_Opcode },
2135
    { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
2136
  },
2137
  /* PREFIX_EVEX_0F3A23 */
2138
  {
2139
    { Bad_Opcode },
2140
    { Bad_Opcode },
2141
    { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
2142
  },
2143
  /* PREFIX_EVEX_0F3A25 */
2144
  {
2145
    { Bad_Opcode },
2146
    { Bad_Opcode },
2147
    { "vpternlog%LW",	{ XM, Vex, EXx, Ib } },
2148
  },
2149
  /* PREFIX_EVEX_0F3A26 */
2150
  {
2151
    { Bad_Opcode },
2152
    { Bad_Opcode },
2153
    { "vgetmantp%XW",	{ XM, EXx, EXxEVexS, Ib } },
2154
  },
2155
  /* PREFIX_EVEX_0F3A27 */
2156
  {
2157
    { Bad_Opcode },
2158
    { Bad_Opcode },
2159
    { "vgetmants%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2160
  },
2161
  /* PREFIX_EVEX_0F3A38 */
2162
  {
2163
    { Bad_Opcode },
2164
    { Bad_Opcode },
2165
    { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
2166
  },
2167
  /* PREFIX_EVEX_0F3A39 */
2168
  {
2169
    { Bad_Opcode },
2170
    { Bad_Opcode },
2171
    { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
2172
  },
2173
  /* PREFIX_EVEX_0F3A3A */
2174
  {
2175
    { Bad_Opcode },
2176
    { Bad_Opcode },
2177
    { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
2178
  },
2179
  /* PREFIX_EVEX_0F3A3B */
2180
  {
2181
    { Bad_Opcode },
2182
    { Bad_Opcode },
2183
    { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
2184
  },
2185
  /* PREFIX_EVEX_0F3A43 */
2186
  {
2187
    { Bad_Opcode },
2188
    { Bad_Opcode },
2189
    { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2190
  },
2191
  /* PREFIX_EVEX_0F3A54 */
2192
  {
2193
    { Bad_Opcode },
2194
    { Bad_Opcode },
2195
    { "vfixupimmp%XW",	{ XM, Vex, EXx, EXxEVexS, Ib } },
2196
  },
2197
  /* PREFIX_EVEX_0F3A55 */
2198
  {
2199
    { Bad_Opcode },
2200
    { Bad_Opcode },
2201
    { "vfixupimms%XW",	{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2202
  },
2203
#endif /* NEED_PREFIX_TABLE */
2204
 
2205
#ifdef NEED_VEX_W_TABLE
2206
  /* EVEX_W_0F10_P_0 */
2207
  {
2208
    { "vmovups",	{ XM, EXEvexXNoBcst } },
2209
  },
2210
  /* EVEX_W_0F10_P_1_M_0 */
2211
  {
2212
    { "vmovss",	{ XMScalar, EXdScalar } },
2213
  },
2214
  /* EVEX_W_0F10_P_1_M_1 */
2215
  {
2216
    { "vmovss",	{ XMScalar, VexScalar, EXx } },
2217
  },
2218
  /* EVEX_W_0F10_P_2 */
2219
  {
2220
    { Bad_Opcode },
2221
    { "vmovupd",	{ XM, EXEvexXNoBcst } },
2222
  },
2223
  /* EVEX_W_0F10_P_3_M_0 */
2224
  {
2225
    { Bad_Opcode },
2226
    { "vmovsd",	{ XMScalar, EXqScalar } },
2227
  },
2228
  /* EVEX_W_0F10_P_3_M_1 */
2229
  {
2230
    { Bad_Opcode },
2231
    { "vmovsd",	{ XMScalar, VexScalar, EXx } },
2232
  },
2233
  /* EVEX_W_0F11_P_0 */
2234
  {
2235
    { "vmovups",	{ EXxS, XM } },
2236
  },
2237
  /* EVEX_W_0F11_P_1_M_0 */
2238
  {
2239
    { "vmovss",	{ EXdScalarS, XMScalar } },
2240
  },
2241
  /* EVEX_W_0F11_P_1_M_1 */
2242
  {
2243
    { "vmovss",	{ EXxS, Vex, XMScalar } },
2244
  },
2245
  /* EVEX_W_0F11_P_2 */
2246
  {
2247
    { Bad_Opcode },
2248
    { "vmovupd",	{ EXxS, XM } },
2249
  },
2250
  /* EVEX_W_0F11_P_3_M_0 */
2251
  {
2252
    { Bad_Opcode },
2253
    { "vmovsd",	{ EXqScalarS, XMScalar } },
2254
  },
2255
  /* EVEX_W_0F11_P_3_M_1 */
2256
  {
2257
    { Bad_Opcode },
2258
    { "vmovsd",	{ EXxS, Vex, XMScalar } },
2259
  },
2260
  /* EVEX_W_0F12_P_0_M_0 */
2261
  {
2262
    { "vmovlps",	{ XMM, Vex, EXxmm_mq } },
2263
  },
2264
  /* EVEX_W_0F12_P_0_M_1 */
2265
  {
2266
    { "vmovhlps",	{ XMM, Vex, EXxmm_mq } },
2267
  },
2268
  /* EVEX_W_0F12_P_1 */
2269
  {
2270
    { "vmovsldup",	{ XM, EXEvexXNoBcst } },
2271
  },
2272
  /* EVEX_W_0F12_P_2 */
2273
  {
2274
    { Bad_Opcode },
2275
    { "vmovlpd",	{ XMM, Vex, EXxmm_mq } },
2276
  },
2277
  /* EVEX_W_0F12_P_3 */
2278
  {
2279
    { Bad_Opcode },
2280
    { "vmovddup",	{ XM, EXymmq } },
2281
  },
2282
  /* EVEX_W_0F13_P_0 */
2283
  {
2284
    { "vmovlps",	{ EXxmm_mq, XMM } },
2285
  },
2286
  /* EVEX_W_0F13_P_2 */
2287
  {
2288
    { Bad_Opcode },
2289
    { "vmovlpd",	{ EXxmm_mq, XMM } },
2290
  },
2291
  /* EVEX_W_0F14_P_0 */
2292
  {
2293
    { "vunpcklps",	{ XM, Vex, EXx } },
2294
  },
2295
  /* EVEX_W_0F14_P_2 */
2296
  {
2297
    { Bad_Opcode },
2298
    { "vunpcklpd",	{ XM, Vex, EXx } },
2299
  },
2300
  /* EVEX_W_0F15_P_0 */
2301
  {
2302
    { "vunpckhps",	{ XM, Vex, EXx } },
2303
  },
2304
  /* EVEX_W_0F15_P_2 */
2305
  {
2306
    { Bad_Opcode },
2307
    { "vunpckhpd",	{ XM, Vex, EXx } },
2308
  },
2309
  /* EVEX_W_0F16_P_0_M_0 */
2310
  {
2311
    { "vmovhps",	{ XMM, Vex, EXxmm_mq } },
2312
  },
2313
  /* EVEX_W_0F16_P_0_M_1 */
2314
  {
2315
    { "vmovlhps",	{ XMM, Vex, EXx } },
2316
  },
2317
  /* EVEX_W_0F16_P_1 */
2318
  {
2319
    { "vmovshdup",	{ XM, EXx } },
2320
  },
2321
  /* EVEX_W_0F16_P_2 */
2322
  {
2323
    { Bad_Opcode },
2324
    { "vmovhpd",	{ XMM, Vex, EXxmm_mq } },
2325
  },
2326
  /* EVEX_W_0F17_P_0 */
2327
  {
2328
    { "vmovhps",	{ EXxmm_mq, XMM } },
2329
  },
2330
  /* EVEX_W_0F17_P_2 */
2331
  {
2332
    { Bad_Opcode },
2333
    { "vmovhpd",	{ EXxmm_mq, XMM } },
2334
  },
2335
  /* EVEX_W_0F28_P_0 */
2336
  {
2337
    { "vmovaps",	{ XM, EXx } },
2338
  },
2339
  /* EVEX_W_0F28_P_2 */
2340
  {
2341
    { Bad_Opcode },
2342
    { "vmovapd",	{ XM, EXx } },
2343
  },
2344
  /* EVEX_W_0F29_P_0 */
2345
  {
2346
    { "vmovaps",	{ EXxS, XM } },
2347
  },
2348
  /* EVEX_W_0F29_P_2 */
2349
  {
2350
    { Bad_Opcode },
2351
    { "vmovapd",	{ EXxS, XM } },
2352
  },
2353
  /* EVEX_W_0F2A_P_1 */
2354
  {
2355
    { "vcvtsi2ss",	{ XMScalar, VexScalar, EXxEVexR, Ed } },
2356
    { "vcvtsi2ss",	{ XMScalar, VexScalar, EXxEVexR, Eq } },
2357
  },
2358
  /* EVEX_W_0F2A_P_3 */
2359
  {
2360
    { "vcvtsi2sd",	{ XMScalar, VexScalar, Ed } },
2361
    { "vcvtsi2sd",	{ XMScalar, VexScalar, EXxEVexR, Eq } },
2362
  },
2363
  /* EVEX_W_0F2B_P_0 */
2364
  {
2365
    { "vmovntps",	{ EXx, XM } },
2366
  },
2367
  /* EVEX_W_0F2B_P_2 */
2368
  {
2369
    { Bad_Opcode },
2370
    { "vmovntpd",	{ EXx, XM } },
2371
  },
2372
  /* EVEX_W_0F2E_P_0 */
2373
  {
2374
    { "vucomiss",	{ XMScalar, EXxmm_md, EXxEVexS } },
2375
  },
2376
  /* EVEX_W_0F2E_P_2 */
2377
  {
2378
    { Bad_Opcode },
2379
    { "vucomisd",	{ XMScalar, EXxmm_mq, EXxEVexS } },
2380
  },
2381
  /* EVEX_W_0F2F_P_0 */
2382
  {
2383
    { "vcomiss",	{ XMScalar, EXxmm_md, EXxEVexS } },
2384
  },
2385
  /* EVEX_W_0F2F_P_2 */
2386
  {
2387
    { Bad_Opcode },
2388
    { "vcomisd",	{ XMScalar, EXxmm_mq, EXxEVexS } },
2389
  },
2390
  /* EVEX_W_0F51_P_0 */
2391
  {
2392
    { "vsqrtps",	{ XM, EXx, EXxEVexR } },
2393
  },
2394
  /* EVEX_W_0F51_P_1 */
2395
  {
2396
    { "vsqrtss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2397
  },
2398
  /* EVEX_W_0F51_P_2 */
2399
  {
2400
    { Bad_Opcode },
2401
    { "vsqrtpd",	{ XM, EXx, EXxEVexR } },
2402
  },
2403
  /* EVEX_W_0F51_P_3 */
2404
  {
2405
    { Bad_Opcode },
2406
    { "vsqrtsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2407
  },
2408
  /* EVEX_W_0F58_P_0 */
2409
  {
2410
    { "vaddps",	{ XM, Vex, EXx, EXxEVexR } },
2411
  },
2412
  /* EVEX_W_0F58_P_1 */
2413
  {
2414
    { "vaddss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2415
  },
2416
  /* EVEX_W_0F58_P_2 */
2417
  {
2418
    { Bad_Opcode },
2419
    { "vaddpd",	{ XM, Vex, EXx, EXxEVexR } },
2420
  },
2421
  /* EVEX_W_0F58_P_3 */
2422
  {
2423
    { Bad_Opcode },
2424
    { "vaddsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2425
  },
2426
  /* EVEX_W_0F59_P_0 */
2427
  {
2428
    { "vmulps",	{ XM, Vex, EXx, EXxEVexR } },
2429
  },
2430
  /* EVEX_W_0F59_P_1 */
2431
  {
2432
    { "vmulss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2433
  },
2434
  /* EVEX_W_0F59_P_2 */
2435
  {
2436
    { Bad_Opcode },
2437
    { "vmulpd",	{ XM, Vex, EXx, EXxEVexR } },
2438
  },
2439
  /* EVEX_W_0F59_P_3 */
2440
  {
2441
    { Bad_Opcode },
2442
    { "vmulsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2443
  },
2444
  /* EVEX_W_0F5A_P_0 */
2445
  {
2446
    { "vcvtps2pd",   { XM, EXEvexHalfBcstXmmq, EXxEVexS } },
2447
  },
2448
  /* EVEX_W_0F5A_P_1 */
2449
  {
2450
    { "vcvtss2sd",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2451
  },
2452
  /* EVEX_W_0F5A_P_2 */
2453
  {
2454
    { Bad_Opcode },
2455
    { "vcvtpd2ps",	{ XMxmmq, EXx, EXxEVexR } },
2456
  },
2457
  /* EVEX_W_0F5A_P_3 */
2458
  {
2459
    { Bad_Opcode },
2460
    { "vcvtsd2ss",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2461
  },
2462
  /* EVEX_W_0F5B_P_0 */
2463
  {
2464
    { "vcvtdq2ps",	{ XM, EXx, EXxEVexR } },
2465
  },
2466
  /* EVEX_W_0F5B_P_1 */
2467
  {
2468
    { "vcvttps2dq",	{ XM, EXx, EXxEVexS } },
2469
  },
2470
  /* EVEX_W_0F5B_P_2 */
2471
  {
2472
    { "vcvtps2dq",	{ XM, EXx, EXxEVexR } },
2473
  },
2474
  /* EVEX_W_0F5C_P_0 */
2475
  {
2476
    { "vsubps",	{ XM, Vex, EXx, EXxEVexR } },
2477
  },
2478
  /* EVEX_W_0F5C_P_1 */
2479
  {
2480
    { "vsubss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2481
  },
2482
  /* EVEX_W_0F5C_P_2 */
2483
  {
2484
    { Bad_Opcode },
2485
    { "vsubpd",	{ XM, Vex, EXx, EXxEVexR } },
2486
  },
2487
  /* EVEX_W_0F5C_P_3 */
2488
  {
2489
    { Bad_Opcode },
2490
    { "vsubsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2491
  },
2492
  /* EVEX_W_0F5D_P_0 */
2493
  {
2494
    { "vminps",	{ XM, Vex, EXx, EXxEVexS } },
2495
  },
2496
  /* EVEX_W_0F5D_P_1 */
2497
  {
2498
    { "vminss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2499
  },
2500
  /* EVEX_W_0F5D_P_2 */
2501
  {
2502
    { Bad_Opcode },
2503
    { "vminpd",	{ XM, Vex, EXx, EXxEVexS } },
2504
  },
2505
  /* EVEX_W_0F5D_P_3 */
2506
  {
2507
    { Bad_Opcode },
2508
    { "vminsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2509
  },
2510
  /* EVEX_W_0F5E_P_0 */
2511
  {
2512
    { "vdivps",	{ XM, Vex, EXx, EXxEVexR } },
2513
  },
2514
  /* EVEX_W_0F5E_P_1 */
2515
  {
2516
    { "vdivss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2517
  },
2518
  /* EVEX_W_0F5E_P_2 */
2519
  {
2520
    { Bad_Opcode },
2521
    { "vdivpd",	{ XM, Vex, EXx, EXxEVexR } },
2522
  },
2523
  /* EVEX_W_0F5E_P_3 */
2524
  {
2525
    { Bad_Opcode },
2526
    { "vdivsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2527
  },
2528
  /* EVEX_W_0F5F_P_0 */
2529
  {
2530
    { "vmaxps",	{ XM, Vex, EXx, EXxEVexS } },
2531
  },
2532
  /* EVEX_W_0F5F_P_1 */
2533
  {
2534
    { "vmaxss",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2535
  },
2536
  /* EVEX_W_0F5F_P_2 */
2537
  {
2538
    { Bad_Opcode },
2539
    { "vmaxpd",	{ XM, Vex, EXx, EXxEVexS } },
2540
  },
2541
  /* EVEX_W_0F5F_P_3 */
2542
  {
2543
    { Bad_Opcode },
2544
    { "vmaxsd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2545
  },
2546
  /* EVEX_W_0F62_P_2 */
2547
  {
2548
    { "vpunpckldq",	{ XM, Vex, EXx } },
2549
  },
2550
  /* EVEX_W_0F66_P_2 */
2551
  {
2552
    { "vpcmpgtd",	{ XMask, Vex, EXx } },
2553
  },
2554
  /* EVEX_W_0F6A_P_2 */
2555
  {
2556
    { "vpunpckhdq",	{ XM, Vex, EXx } },
2557
  },
2558
  /* EVEX_W_0F6C_P_2 */
2559
  {
2560
    { Bad_Opcode },
2561
    { "vpunpcklqdq",	{ XM, Vex, EXx } },
2562
  },
2563
  /* EVEX_W_0F6D_P_2 */
2564
  {
2565
    { Bad_Opcode },
2566
    { "vpunpckhqdq",	{ XM, Vex, EXx } },
2567
  },
2568
  /* EVEX_W_0F6E_P_2 */
2569
  {
2570
    { "vmovd",	{ XMScalar, Ed } },
2571
    { "vmovq",	{ XMScalar, Eq } },
2572
  },
2573
  /* EVEX_W_0F6F_P_1 */
2574
  {
2575
    { "vmovdqu32",	{ XM, EXEvexXNoBcst } },
2576
    { "vmovdqu64",	{ XM, EXEvexXNoBcst } },
2577
  },
2578
  /* EVEX_W_0F6F_P_2 */
2579
  {
2580
    { "vmovdqa32",	{ XM, EXEvexXNoBcst } },
2581
    { "vmovdqa64",	{ XM, EXEvexXNoBcst } },
2582
  },
2583
  /* EVEX_W_0F70_P_2 */
2584
  {
2585
    { "vpshufd",	{ XM, EXx, Ib } },
2586
  },
2587
  /* EVEX_W_0F72_R_2_P_2 */
2588
  {
2589
    { "vpsrld",	{ Vex, EXx, Ib } },
2590
  },
2591
  /* EVEX_W_0F72_R_6_P_2 */
2592
  {
2593
    { "vpslld",	{ Vex, EXx, Ib } },
2594
  },
2595
  /* EVEX_W_0F73_R_2_P_2 */
2596
  {
2597
    { Bad_Opcode },
2598
    { "vpsrlq",	{ Vex, EXx, Ib } },
2599
  },
2600
  /* EVEX_W_0F73_R_6_P_2 */
2601
  {
2602
    { Bad_Opcode },
2603
    { "vpsllq",	{ Vex, EXx, Ib } },
2604
  },
2605
  /* EVEX_W_0F76_P_2 */
2606
  {
2607
    { "vpcmpeqd",	{ XMask, Vex, EXx } },
2608
  },
2609
  /* EVEX_W_0F78_P_0 */
2610
  {
2611
    { "vcvttps2udq",	{ XM, EXx, EXxEVexS } },
2612
    { "vcvttpd2udq",	{ XMxmmq, EXx, EXxEVexS } },
2613
  },
2614
  /* EVEX_W_0F79_P_0 */
2615
  {
2616
    { "vcvtps2udq",	{ XM, EXx, EXxEVexR } },
2617
    { "vcvtpd2udq",	{ XMxmmq, EXx, EXxEVexR } },
2618
  },
2619
  /* EVEX_W_0F7A_P_1 */
2620
  {
2621
    { "vcvtudq2pd",	{ XM, EXEvexHalfBcstXmmq } },
2622
  },
2623
  /* EVEX_W_0F7A_P_3 */
2624
  {
2625
    { "vcvtudq2ps",	{ XM, EXx, EXxEVexR } },
2626
  },
2627
  /* EVEX_W_0F7B_P_1 */
2628
  {
2629
    { "vcvtusi2ss",	{ XMScalar, VexScalar, EXxEVexR, Ed } },
2630
    { "vcvtusi2ss",	{ XMScalar, VexScalar, EXxEVexR, Eq } },
2631
  },
2632
  /* EVEX_W_0F7B_P_3 */
2633
  {
2634
    { "vcvtusi2sd",	{ XMScalar, VexScalar, Ed } },
2635
    { "vcvtusi2sd",	{ XMScalar, VexScalar, EXxEVexR, Eq } },
2636
  },
2637
  /* EVEX_W_0F7E_P_1 */
2638
  {
2639
    { Bad_Opcode },
2640
    { "vmovq",	{ XMScalar, EXxmm_mq } },
2641
  },
2642
  /* EVEX_W_0F7E_P_2 */
2643
  {
2644
    { "vmovd",	{ Ed, XMScalar } },
2645
    { "vmovq",	{ Eq, XMScalar } },
2646
  },
2647
  /* EVEX_W_0F7F_P_1 */
2648
  {
2649
    { "vmovdqu32",	{ EXxS, XM } },
2650
    { "vmovdqu64",	{ EXxS, XM } },
2651
  },
2652
  /* EVEX_W_0F7F_P_2 */
2653
  {
2654
    { "vmovdqa32",	{ EXxS, XM } },
2655
    { "vmovdqa64",	{ EXxS, XM } },
2656
  },
2657
  /* EVEX_W_0FC2_P_0 */
2658
  {
2659
    { "vcmpps",	{ XMask, Vex, EXx, EXxEVexS, VCMP } },
2660
  },
2661
  /* EVEX_W_0FC2_P_1 */
2662
  {
2663
    { "vcmpss",	{ XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP } },
2664
  },
2665
  /* EVEX_W_0FC2_P_2 */
2666
  {
2667
    { Bad_Opcode },
2668
    { "vcmppd",	{ XMask, Vex, EXx, EXxEVexS, VCMP } },
2669
  },
2670
  /* EVEX_W_0FC2_P_3 */
2671
  {
2672
    { Bad_Opcode },
2673
    { "vcmpsd",	{ XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP } },
2674
  },
2675
  /* EVEX_W_0FC6_P_0 */
2676
  {
2677
    { "vshufps",	{ XM, Vex, EXx, Ib } },
2678
  },
2679
  /* EVEX_W_0FC6_P_2 */
2680
  {
2681
    { Bad_Opcode },
2682
    { "vshufpd",	{ XM, Vex, EXx, Ib } },
2683
  },
2684
  /* EVEX_W_0FD2_P_2 */
2685
  {
2686
    { "vpsrld",	{ XM, Vex, EXxmm } },
2687
  },
2688
  /* EVEX_W_0FD3_P_2 */
2689
  {
2690
    { Bad_Opcode },
2691
    { "vpsrlq",	{ XM, Vex, EXxmm } },
2692
  },
2693
  /* EVEX_W_0FD4_P_2 */
2694
  {
2695
    { Bad_Opcode },
2696
    { "vpaddq",	{ XM, Vex, EXx } },
2697
  },
2698
  /* EVEX_W_0FD6_P_2 */
2699
  {
2700
    { Bad_Opcode },
2701
    { "vmovq",	{ EXxmm_mq, XMScalar } },
2702
  },
2703
  /* EVEX_W_0FE6_P_1 */
2704
  {
2705
    { "vcvtdq2pd",	{ XM, EXEvexHalfBcstXmmq } },
2706
  },
2707
  /* EVEX_W_0FE6_P_2 */
2708
  {
2709
    { Bad_Opcode },
2710
    { "vcvttpd2dq",	{ XMxmmq, EXx, EXxEVexS } },
2711
  },
2712
  /* EVEX_W_0FE6_P_3 */
2713
  {
2714
    { Bad_Opcode },
2715
    { "vcvtpd2dq",	{ XMxmmq, EXx, EXxEVexR } },
2716
  },
2717
  /* EVEX_W_0FE7_P_2 */
2718
  {
2719
    { "vmovntdq",	{ EXEvexXNoBcst, XM } },
2720
  },
2721
  /* EVEX_W_0FF2_P_2 */
2722
  {
2723
    { "vpslld",	{ XM, Vex, EXxmm } },
2724
  },
2725
  /* EVEX_W_0FF3_P_2 */
2726
  {
2727
    { Bad_Opcode },
2728
    { "vpsllq",	{ XM, Vex, EXxmm } },
2729
  },
2730
  /* EVEX_W_0FF4_P_2 */
2731
  {
2732
    { Bad_Opcode },
2733
    { "vpmuludq",	{ XM, Vex, EXx } },
2734
  },
2735
  /* EVEX_W_0FFA_P_2 */
2736
  {
2737
    { "vpsubd",	{ XM, Vex, EXx } },
2738
  },
2739
  /* EVEX_W_0FFB_P_2 */
2740
  {
2741
    { Bad_Opcode },
2742
    { "vpsubq",	{ XM, Vex, EXx } },
2743
  },
2744
  /* EVEX_W_0FFE_P_2 */
2745
  {
2746
    { "vpaddd",	{ XM, Vex, EXx } },
2747
  },
2748
 
2749
  /* EVEX_W_0F380C_P_2 */
2750
  {
2751
    { "vpermilps",	{ XM, Vex, EXx } },
2752
  },
2753
  /* EVEX_W_0F380D_P_2 */
2754
  {
2755
    { Bad_Opcode },
2756
    { "vpermilpd",	{ XM, Vex, EXx } },
2757
  },
2758
  /* EVEX_W_0F3811_P_1 */
2759
  {
2760
    { "vpmovusdb",	{ EXxmmqd, XM } },
2761
  },
2762
  /* EVEX_W_0F3812_P_1 */
2763
  {
2764
    { "vpmovusqb",	{ EXxmmdw, XM } },
2765
  },
2766
  /* EVEX_W_0F3813_P_1 */
2767
  {
2768
    { "vpmovusdw",	{ EXxmmq, XM } },
2769
  },
2770
  /* EVEX_W_0F3813_P_2 */
2771
  {
2772
    { "vcvtph2ps",	{ XM, EXxmmq, EXxEVexS } },
2773
  },
2774
  /* EVEX_W_0F3814_P_1 */
2775
  {
2776
    { "vpmovusqw",	{ EXxmmqd, XM } },
2777
  },
2778
  /* EVEX_W_0F3815_P_1 */
2779
  {
2780
    { "vpmovusqd",	{ EXxmmq, XM } },
2781
  },
2782
  /* EVEX_W_0F3818_P_2 */
2783
  {
2784
    { "vbroadcastss",	{ XM, EXxmm_md } },
2785
  },
2786
  /* EVEX_W_0F3819_P_2 */
2787
  {
2788
    { Bad_Opcode },
2789
    { "vbroadcastsd",	{ XM, EXxmm_mq } },
2790
  },
2791
  /* EVEX_W_0F381A_P_2 */
2792
  {
2793
    { "vbroadcastf32x4",	{ XM, EXxmm } },
2794
  },
2795
  /* EVEX_W_0F381B_P_2 */
2796
  {
2797
    { Bad_Opcode },
2798
    { "vbroadcastf64x4",	{ XM, EXymm } },
2799
  },
2800
  /* EVEX_W_0F381E_P_2 */
2801
  {
2802
    { "vpabsd",	{ XM, EXx } },
2803
  },
2804
  /* EVEX_W_0F381F_P_2 */
2805
  {
2806
    { Bad_Opcode },
2807
    { "vpabsq",	{ XM, EXx } },
2808
  },
2809
  /* EVEX_W_0F3821_P_1 */
2810
  {
2811
    { "vpmovsdb",	{ EXxmmqd, XM } },
2812
  },
2813
  /* EVEX_W_0F3822_P_1 */
2814
  {
2815
    { "vpmovsqb",	{ EXxmmdw, XM } },
2816
  },
2817
  /* EVEX_W_0F3823_P_1 */
2818
  {
2819
    { "vpmovsdw",	{ EXxmmq, XM } },
2820
  },
2821
  /* EVEX_W_0F3824_P_1 */
2822
  {
2823
    { "vpmovsqw",	{ EXxmmqd, XM } },
2824
  },
2825
  /* EVEX_W_0F3825_P_1 */
2826
  {
2827
    { "vpmovsqd",	{ EXxmmq, XM } },
2828
  },
2829
  /* EVEX_W_0F3825_P_2 */
2830
  {
2831
    { "vpmovsxdq",	{ XM, EXxmmq } },
2832
  },
2833
  /* EVEX_W_0F3828_P_2 */
2834
  {
2835
    { Bad_Opcode },
2836
    { "vpmuldq",	{ XM, Vex, EXx } },
2837
  },
2838
  /* EVEX_W_0F3829_P_2 */
2839
  {
2840
    { Bad_Opcode },
2841
    { "vpcmpeqq",	{ XMask, Vex, EXx } },
2842
  },
2843
  /* EVEX_W_0F382A_P_1 */
2844
  {
2845
    { Bad_Opcode },
2846
    { "vpbroadcastmb2q",	{ XM, MaskR } },
2847
  },
2848
  /* EVEX_W_0F382A_P_2 */
2849
  {
2850
    { "vmovntdqa",	{ XM, EXEvexXNoBcst } },
2851
  },
2852
  /* EVEX_W_0F3831_P_1 */
2853
  {
2854
    { "vpmovdb",	{ EXxmmqd, XM } },
2855
  },
2856
  /* EVEX_W_0F3832_P_1 */
2857
  {
2858
    { "vpmovqb",	{ EXxmmdw, XM } },
2859
  },
2860
  /* EVEX_W_0F3833_P_1 */
2861
  {
2862
    { "vpmovdw",	{ EXxmmq, XM } },
2863
  },
2864
  /* EVEX_W_0F3834_P_1 */
2865
  {
2866
    { "vpmovqw",	{ EXxmmqd, XM } },
2867
  },
2868
  /* EVEX_W_0F3835_P_1 */
2869
  {
2870
    { "vpmovqd",	{ EXxmmq, XM } },
2871
  },
2872
  /* EVEX_W_0F3835_P_2 */
2873
  {
2874
    { "vpmovzxdq",	{ XM, EXxmmq } },
2875
  },
2876
  /* EVEX_W_0F3837_P_2 */
2877
  {
2878
    { Bad_Opcode },
2879
    { "vpcmpgtq",	{ XMask, Vex, EXx } },
2880
  },
2881
  /* EVEX_W_0F383A_P_1 */
2882
  {
2883
    { "vpbroadcastmw2d",	{ XM, MaskR } },
2884
  },
2885
  /* EVEX_W_0F3840_P_2 */
2886
  {
2887
    { "vpmulld",	{ XM, Vex, EXx } },
2888
  },
2889
  /* EVEX_W_0F3858_P_2 */
2890
  {
2891
    { "vpbroadcastd",	{ XM, EXxmm_md } },
2892
  },
2893
  /* EVEX_W_0F3859_P_2 */
2894
  {
2895
    { Bad_Opcode },
2896
    { "vpbroadcastq",	{ XM, EXxmm_mq } },
2897
  },
2898
  /* EVEX_W_0F385A_P_2 */
2899
  {
2900
    { "vbroadcasti32x4",	{ XM, EXxmm } },
2901
  },
2902
  /* EVEX_W_0F385B_P_2 */
2903
  {
2904
    { Bad_Opcode },
2905
    { "vbroadcasti64x4",	{ XM, EXymm } },
2906
  },
2907
  /* EVEX_W_0F3891_P_2 */
2908
  {
2909
    { "vpgatherqd",	{ XMxmmq, MVexVSIBQWpX } },
2910
    { "vpgatherqq",	{ XM, MVexVSIBQWpX } },
2911
  },
2912
  /* EVEX_W_0F3893_P_2 */
2913
  {
2914
    { "vgatherqps",	{ XMxmmq, MVexVSIBQWpX } },
2915
    { "vgatherqpd",	{ XM, MVexVSIBQWpX } },
2916
  },
2917
  /* EVEX_W_0F38A1_P_2 */
2918
  {
2919
    { "vpscatterqd",	{ MVexVSIBQWpX, XMxmmq } },
2920
    { "vpscatterqq",	{ MVexVSIBQWpX, XM } },
2921
  },
2922
  /* EVEX_W_0F38A3_P_2 */
2923
  {
2924
    { "vscatterqps",	{ MVexVSIBQWpX, XMxmmq } },
2925
    { "vscatterqpd",	{ MVexVSIBQWpX, XM } },
2926
  },
2927
  /* EVEX_W_0F38C7_R_1_P_2 */
2928
  {
2929
    { "vgatherpf0qps",  { MVexVSIBDWpX } },
2930
    { "vgatherpf0qpd",  { MVexVSIBQWpX } },
2931
  },
2932
  /* EVEX_W_0F38C7_R_2_P_2 */
2933
  {
2934
    { "vgatherpf1qps",  { MVexVSIBDWpX } },
2935
    { "vgatherpf1qpd",  { MVexVSIBQWpX } },
2936
  },
2937
  /* EVEX_W_0F38C7_R_5_P_2 */
2938
  {
2939
    { "vscatterpf0qps",  { MVexVSIBDWpX } },
2940
    { "vscatterpf0qpd",  { MVexVSIBQWpX } },
2941
  },
2942
  /* EVEX_W_0F38C7_R_6_P_2 */
2943
  {
2944
    { "vscatterpf1qps",  { MVexVSIBDWpX } },
2945
    { "vscatterpf1qpd",  { MVexVSIBQWpX } },
2946
  },
2947
 
2948
  /* EVEX_W_0F3A00_P_2 */
2949
  {
2950
    { Bad_Opcode },
2951
    { "vpermq",	{ XM, EXx, Ib } },
2952
  },
2953
  /* EVEX_W_0F3A01_P_2 */
2954
  {
2955
    { Bad_Opcode },
2956
    { "vpermpd",	{ XM, EXx, Ib } },
2957
  },
2958
  /* EVEX_W_0F3A04_P_2 */
2959
  {
2960
    { "vpermilps",	{ XM, EXx, Ib } },
2961
  },
2962
  /* EVEX_W_0F3A05_P_2 */
2963
  {
2964
    { Bad_Opcode },
2965
    { "vpermilpd",	{ XM, EXx, Ib } },
2966
  },
2967
  /* EVEX_W_0F3A08_P_2 */
2968
  {
2969
    { "vrndscaleps",	{ XM, EXx, EXxEVexS, Ib } },
2970
  },
2971
  /* EVEX_W_0F3A09_P_2 */
2972
  {
2973
    { Bad_Opcode },
2974
    { "vrndscalepd",	{ XM, EXx, EXxEVexS, Ib } },
2975
  },
2976
  /* EVEX_W_0F3A0A_P_2 */
2977
  {
2978
    { "vrndscaless",	{ XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib } },
2979
  },
2980
  /* EVEX_W_0F3A0B_P_2 */
2981
  {
2982
    { Bad_Opcode },
2983
    { "vrndscalesd",	{ XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib } },
2984
  },
2985
  /* EVEX_W_0F3A18_P_2 */
2986
  {
2987
    { "vinsertf32x4",	{ XM, Vex, EXxmm, Ib } },
2988
  },
2989
  /* EVEX_W_0F3A19_P_2 */
2990
  {
2991
    { "vextractf32x4",	{ EXxmm, XM, Ib } },
2992
  },
2993
  /* EVEX_W_0F3A1A_P_2 */
2994
  {
2995
    { Bad_Opcode },
2996
    { "vinsertf64x4",	{ XM, Vex, EXxmmq, Ib } },
2997
  },
2998
  /* EVEX_W_0F3A1B_P_2 */
2999
  {
3000
    { Bad_Opcode },
3001
    { "vextractf64x4",	{ EXxmmq, XM, Ib } },
3002
  },
3003
  /* EVEX_W_0F3A1D_P_2 */
3004
  {
3005
    { "vcvtps2ph",	{ EXxmmq, XM, EXxEVexS, Ib } },
3006
  },
3007
  /* EVEX_W_0F3A21_P_2 */
3008
  {
3009
    { "vinsertps",	{ XMM, Vex, EXxmm_md, Ib } },
3010
  },
3011
  /* EVEX_W_0F3A23_P_2 */
3012
  {
3013
    { "vshuff32x4",	{ XM, Vex, EXx, Ib } },
3014
    { "vshuff64x2",	{ XM, Vex, EXx, Ib } },
3015
  },
3016
  /* EVEX_W_0F3A38_P_2 */
3017
  {
3018
    { "vinserti32x4",	{ XM, Vex, EXxmm, Ib } },
3019
  },
3020
  /* EVEX_W_0F3A39_P_2 */
3021
  {
3022
    { "vextracti32x4",	{ EXxmm, XM, Ib } },
3023
  },
3024
  /* EVEX_W_0F3A3A_P_2 */
3025
  {
3026
    { Bad_Opcode },
3027
    { "vinserti64x4",	{ XM, Vex, EXxmmq, Ib } },
3028
  },
3029
  /* EVEX_W_0F3A3B_P_2 */
3030
  {
3031
    { Bad_Opcode },
3032
    { "vextracti64x4",	{ EXxmmq, XM, Ib } },
3033
  },
3034
  /* EVEX_W_0F3A43_P_2 */
3035
  {
3036
    { "vshufi32x4",	{ XM, Vex, EXx, Ib } },
3037
    { "vshufi64x2",	{ XM, Vex, EXx, Ib } },
3038
  },
3039
#endif /* NEED_VEX_W_TABLE */
3040
#ifdef NEED_MOD_TABLE
3041
  {
3042
    /* MOD_EVEX_0F10_PREFIX_1 */
3043
    { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
3044
    { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
3045
  },
3046
  {
3047
    /* MOD_EVEX_0F10_PREFIX_3 */
3048
    { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
3049
    { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
3050
  },
3051
  {
3052
    /* MOD_EVEX_0F11_PREFIX_1 */
3053
    { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
3054
    { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
3055
  },
3056
  {
3057
    /* MOD_EVEX_0F11_PREFIX_3 */
3058
    { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
3059
    { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
3060
  },
3061
  {
3062
    /* MOD_EVEX_0F12_PREFIX_0 */
3063
    { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
3064
    { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
3065
  },
3066
  {
3067
    /* MOD_EVEX_0F16_PREFIX_0 */
3068
    { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
3069
    { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
3070
  },
3071
  {
3072
    /* MOD_EVEX_0F38C6_REG_1 */
3073
    { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
3074
  },
3075
  {
3076
    /* MOD_EVEX_0F38C6_REG_2 */
3077
    { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
3078
  },
3079
  {
3080
    /* MOD_EVEX_0F38C6_REG_5 */
3081
    { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
3082
  },
3083
  {
3084
    /* MOD_EVEX_0F38C6_REG_6 */
3085
    { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
3086
  },
3087
  {
3088
    /* MOD_EVEX_0F38C7_REG_1 */
3089
    { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
3090
  },
3091
  {
3092
    /* MOD_EVEX_0F38C7_REG_2 */
3093
    { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
3094
  },
3095
  {
3096
    /* MOD_EVEX_0F38C7_REG_5 */
3097
    { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
3098
  },
3099
  {
3100
    /* MOD_EVEX_0F38C7_REG_6 */
3101
    { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
3102
  },
3103
#endif /* NEED_MOD_TABLE */