1 static const struct dis386 evex_table
[][256] = {
23 { PREFIX_TABLE (PREFIX_0F10
) },
24 { PREFIX_TABLE (PREFIX_0F11
) },
25 { PREFIX_TABLE (PREFIX_VEX_0F12
) },
26 { VEX_LEN_TABLE (VEX_LEN_0F13
) },
27 { "%XEvunpcklpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
28 { "%XEvunpckhpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
29 { PREFIX_TABLE (PREFIX_VEX_0F16
) },
30 { VEX_LEN_TABLE (VEX_LEN_0F17
) },
50 { "%XEvmovapX", { XM
, EXx
}, PREFIX_OPCODE
},
51 { "%XEvmovapX", { EXxS
, XM
}, PREFIX_OPCODE
},
52 { PREFIX_TABLE (PREFIX_VEX_0F2A
) },
53 { "%XEvmovntpX", { Mx
, XM
}, PREFIX_OPCODE
},
54 { PREFIX_TABLE (PREFIX_VEX_0F2C
) },
55 { PREFIX_TABLE (PREFIX_VEX_0F2D
) },
56 { PREFIX_TABLE (PREFIX_0F2E
) },
57 { PREFIX_TABLE (PREFIX_0F2F
) },
96 { PREFIX_TABLE (PREFIX_0F51
) },
99 { "%XEvandpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
100 { "%XEvandnpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
101 { "%XEvorpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
102 { "%XEvxorpX", { XM
, Vex
, EXx
}, PREFIX_OPCODE
},
104 { PREFIX_TABLE (PREFIX_0F58
) },
105 { PREFIX_TABLE (PREFIX_0F59
) },
106 { PREFIX_TABLE (PREFIX_0F5A
) },
107 { PREFIX_TABLE (PREFIX_EVEX_0F5B
) },
108 { PREFIX_TABLE (PREFIX_0F5C
) },
109 { PREFIX_TABLE (PREFIX_0F5D
) },
110 { PREFIX_TABLE (PREFIX_0F5E
) },
111 { PREFIX_TABLE (PREFIX_0F5F
) },
113 { "%XEvpunpcklbw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
114 { "%XEvpunpcklwd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
115 { VEX_W_TABLE (EVEX_W_0F62
) },
116 { "%XEvpacksswb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
117 { "vpcmpgtb", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
118 { "vpcmpgtw", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
119 { VEX_W_TABLE (EVEX_W_0F66
) },
120 { "%XEvpackuswb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
122 { "%XEvpunpckhbw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
123 { "%XEvpunpckhwd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
124 { VEX_W_TABLE (EVEX_W_0F6A
) },
125 { VEX_W_TABLE (EVEX_W_0F6B
) },
126 { VEX_W_TABLE (EVEX_W_0F6C
) },
127 { VEX_W_TABLE (EVEX_W_0F6D
) },
128 { VEX_LEN_TABLE (VEX_LEN_0F6E
) },
129 { PREFIX_TABLE (PREFIX_EVEX_0F6F
) },
131 { PREFIX_TABLE (PREFIX_EVEX_0F70
) },
132 { REG_TABLE (REG_EVEX_0F71
) },
133 { REG_TABLE (REG_EVEX_0F72
) },
134 { REG_TABLE (REG_EVEX_0F73
) },
135 { "vpcmpeqb", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
136 { "vpcmpeqw", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
137 { VEX_W_TABLE (EVEX_W_0F76
) },
140 { PREFIX_TABLE (PREFIX_EVEX_0F78
) },
141 { PREFIX_TABLE (PREFIX_EVEX_0F79
) },
142 { PREFIX_TABLE (PREFIX_EVEX_0F7A
) },
143 { PREFIX_TABLE (PREFIX_EVEX_0F7B
) },
146 { PREFIX_TABLE (PREFIX_EVEX_0F7E
) },
147 { PREFIX_TABLE (PREFIX_EVEX_0F7F
) },
167 { X86_64_EVEX_W_TABLE (VEX_W_0F90_L_0
) },
168 { X86_64_EVEX_W_TABLE (VEX_W_0F91_L_0
) },
169 { X86_64_EVEX_W_TABLE (VEX_W_0F92_L_0
) },
170 { X86_64_EVEX_W_TABLE (VEX_W_0F93_L_0
) },
223 { PREFIX_TABLE (PREFIX_EVEX_0FC2
) },
225 { VEX_LEN_TABLE (VEX_LEN_0FC4
) },
226 { "%XEvpextrw", { Gd
, Uxmm
, Ib
}, PREFIX_DATA
},
227 { "%XEvshufpX", { XM
, Vex
, EXx
, Ib
}, PREFIX_OPCODE
},
240 { "%XEvpsrlw", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
241 { VEX_W_TABLE (EVEX_W_0FD2
) },
242 { VEX_W_TABLE (EVEX_W_0FD3
) },
243 { VEX_W_TABLE (EVEX_W_0FD4
) },
244 { "%XEvpmullw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
245 { VEX_W_TABLE (EVEX_W_0FD6
) },
248 { "%XEvpsubusb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
249 { "%XEvpsubusw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
250 { "%XEvpminub", { XM
, Vex
, EXx
}, PREFIX_DATA
},
251 { "vpand%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
252 { "%XEvpaddusb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
253 { "%XEvpaddusw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
254 { "%XEvpmaxub", { XM
, Vex
, EXx
}, PREFIX_DATA
},
255 { "vpandn%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
257 { "%XEvpavgb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
258 { "%XEvpsraw", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
259 { VEX_W_TABLE (EVEX_W_0FE2
) },
260 { "%XEvpavgw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
261 { "%XEvpmulhuw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
262 { "%XEvpmulhw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
263 { PREFIX_TABLE (PREFIX_EVEX_0FE6
) },
264 { VEX_W_TABLE (EVEX_W_0FE7
) },
266 { "%XEvpsubsb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
267 { "%XEvpsubsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
268 { "%XEvpminsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
269 { "vpor%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
270 { "%XEvpaddsb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
271 { "%XEvpaddsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
272 { "%XEvpmaxsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
273 { "vpxor%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
276 { "%XEvpsllw", { XM
, Vex
, EXxmm
}, PREFIX_DATA
},
277 { VEX_W_TABLE (EVEX_W_0FF2
) },
278 { VEX_W_TABLE (EVEX_W_0FF3
) },
279 { VEX_W_TABLE (EVEX_W_0FF4
) },
280 { "%XEvpmaddwd", { XM
, Vex
, EXx
}, PREFIX_DATA
},
281 { "%XEvpsadbwY", { XM
, Vex
, EXx
}, PREFIX_DATA
},
284 { "%XEvpsubb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
285 { "%XEvpsubw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
286 { VEX_W_TABLE (EVEX_W_0FFA
) },
287 { VEX_W_TABLE (EVEX_W_0FFB
) },
288 { "%XEvpaddb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
289 { "%XEvpaddw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
290 { VEX_W_TABLE (EVEX_W_0FFE
) },
296 { "%XEvpshufb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
300 { "%XEvpmaddubsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
308 { "%XEvpmulhrsw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
309 { VEX_W_TABLE (VEX_W_0F380C
) },
310 { "%XEvpermilp%XD", { XM
, Vex
, EXx
}, PREFIX_DATA
},
314 { PREFIX_TABLE (PREFIX_EVEX_0F3810
) },
315 { PREFIX_TABLE (PREFIX_EVEX_0F3811
) },
316 { PREFIX_TABLE (PREFIX_EVEX_0F3812
) },
317 { PREFIX_TABLE (PREFIX_EVEX_0F3813
) },
318 { PREFIX_TABLE (PREFIX_EVEX_0F3814
) },
319 { PREFIX_TABLE (PREFIX_EVEX_0F3815
) },
320 { EVEX_LEN_TABLE (EVEX_LEN_0F3816
) },
323 { VEX_W_TABLE (VEX_W_0F3818
) },
324 { EVEX_LEN_TABLE (EVEX_LEN_0F3819
) },
325 { EVEX_LEN_TABLE (EVEX_LEN_0F381A
) },
326 { EVEX_LEN_TABLE (EVEX_LEN_0F381B
) },
327 { "%XEvpabsb", { XM
, EXx
}, PREFIX_DATA
},
328 { "%XEvpabsw", { XM
, EXx
}, PREFIX_DATA
},
329 { VEX_W_TABLE (EVEX_W_0F381E
) },
330 { VEX_W_TABLE (EVEX_W_0F381F
) },
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
) },
341 { PREFIX_TABLE (PREFIX_EVEX_0F3828
) },
342 { PREFIX_TABLE (PREFIX_EVEX_0F3829
) },
343 { PREFIX_TABLE (PREFIX_EVEX_0F382A
) },
344 { VEX_W_TABLE (EVEX_W_0F382B
) },
345 { "vscalefp%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
346 { "vscalefs%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
350 { PREFIX_TABLE (PREFIX_EVEX_0F3830
) },
351 { PREFIX_TABLE (PREFIX_EVEX_0F3831
) },
352 { PREFIX_TABLE (PREFIX_EVEX_0F3832
) },
353 { PREFIX_TABLE (PREFIX_EVEX_0F3833
) },
354 { PREFIX_TABLE (PREFIX_EVEX_0F3834
) },
355 { PREFIX_TABLE (PREFIX_EVEX_0F3835
) },
356 { EVEX_LEN_TABLE (EVEX_LEN_0F3836
) },
357 { VEX_W_TABLE (EVEX_W_0F3837
) },
359 { PREFIX_TABLE (PREFIX_EVEX_0F3838
) },
360 { PREFIX_TABLE (PREFIX_EVEX_0F3839
) },
361 { PREFIX_TABLE (PREFIX_EVEX_0F383A
) },
362 { "%XEvpminu%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
363 { "%XEvpmaxsb", { XM
, Vex
, EXx
}, PREFIX_DATA
},
364 { "%XEvpmaxs%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
365 { "%XEvpmaxuw", { XM
, Vex
, EXx
}, PREFIX_DATA
},
366 { "%XEvpmaxu%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
368 { "%XEvpmull%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
370 { "vgetexpp%XW", { XM
, EXx
, EXxEVexS
}, PREFIX_DATA
},
371 { "vgetexps%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexS
}, PREFIX_DATA
},
372 { "vplzcnt%DQ", { XM
, EXx
}, PREFIX_DATA
},
373 { "vpsrlv%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
374 { "vpsrav%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
375 { "vpsllv%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
378 { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F3849_X86_64_L_0
) },
380 { X86_64_EVEX_MEM_W_TABLE (VEX_W_0F384B_X86_64_L_0
) },
381 { "vrcp14p%XW", { XM
, EXx
}, PREFIX_DATA
},
382 { "vrcp14s%XW", { XMScalar
, VexScalar
, EXdq
}, PREFIX_DATA
},
383 { "vrsqrt14p%XW", { XM
, EXx
}, 0 },
384 { "vrsqrt14s%XW", { XMScalar
, VexScalar
, EXdq
}, PREFIX_DATA
},
386 { VEX_W_TABLE (VEX_W_0F3850
) },
387 { VEX_W_TABLE (VEX_W_0F3851
) },
388 { PREFIX_TABLE (PREFIX_EVEX_0F3852
) },
389 { PREFIX_TABLE (PREFIX_EVEX_0F3853
) },
390 { "vpopcnt%BW", { XM
, EXx
}, PREFIX_DATA
},
391 { "vpopcnt%DQ", { XM
, EXx
}, PREFIX_DATA
},
395 { VEX_W_TABLE (VEX_W_0F3858
) },
396 { VEX_W_TABLE (EVEX_W_0F3859
) },
397 { EVEX_LEN_TABLE (EVEX_LEN_0F385A
) },
398 { EVEX_LEN_TABLE (EVEX_LEN_0F385B
) },
406 { "vpexpand%BW", { XM
, EXbwUnit
}, PREFIX_DATA
},
407 { "vpcompress%BW", { EXbwUnit
, XM
}, PREFIX_DATA
},
408 { "vpblendm%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
409 { "vblendmp%XW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
410 { "vpblendm%BW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
411 { "vcvt2p%XS2phx", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
413 { PREFIX_TABLE (PREFIX_EVEX_0F3868
) },
422 { VEX_W_TABLE (EVEX_W_0F3870
) },
423 { "vpshldv%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
424 { PREFIX_TABLE (PREFIX_EVEX_0F3872
) },
425 { "vpshrdv%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
426 { PREFIX_TABLE (PREFIX_EVEX_0F3874
) },
427 { "vpermi2%BW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
428 { "vpermi2%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
429 { "vpermi2p%XW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
431 { VEX_W_TABLE (VEX_W_0F3878
) },
432 { VEX_W_TABLE (VEX_W_0F3879
) },
433 { VEX_W_TABLE (EVEX_W_0F387A
) },
434 { VEX_W_TABLE (EVEX_W_0F387B
) },
435 { "vpbroadcastK", { XM
, Rdq
}, PREFIX_DATA
},
436 { "vpermt2%BW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
437 { "vpermt2%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
438 { "vpermt2p%XW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
443 { VEX_W_TABLE (EVEX_W_0F3883
) },
449 { "vexpandp%XW", { XM
, EXEvexXGscat
}, PREFIX_DATA
},
450 { "vpexpand%DQ", { XM
, EXEvexXGscat
}, PREFIX_DATA
},
451 { "vcompressp%XW", { EXEvexXGscat
, XM
}, PREFIX_DATA
},
452 { "vpcompress%DQ", { EXEvexXGscat
, XM
}, PREFIX_DATA
},
454 { "vperm%BW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
456 { "vpshufbitqmb", { MaskG
, Vex
, EXx
}, PREFIX_DATA
},
458 { "vpgatherd%DQ", { XMGatherD
, MVexVSIBDWpX
}, PREFIX_DATA
},
459 { "vpgatherq%DQ", { XMGatherQ
, MVexVSIBQWpX
}, PREFIX_DATA
},
460 { "vgatherdp%XW", { XMGatherD
, MVexVSIBDWpX
}, PREFIX_DATA
},
461 { "vgatherqp%XW", { XMGatherQ
, MVexVSIBQWpX
}, PREFIX_DATA
},
464 { "%XEvfmaddsub132p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
465 { "%XEvfmsubadd132p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
467 { "%XEvfmadd132p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
468 { "%XEvfmadd132s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
469 { PREFIX_TABLE (PREFIX_EVEX_0F389A
) },
470 { PREFIX_TABLE (PREFIX_EVEX_0F389B
) },
471 { "%XEvfnmadd132p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
472 { "%XEvfnmadd132s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
473 { "%XEvfnmsub132p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
474 { "%XEvfnmsub132s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
476 { "vpscatterd%DQ", { MVexVSIBDWpX
, XM
}, PREFIX_DATA
},
477 { "vpscatterq%DQ", { MVexVSIBQWpX
, XMGatherQ
}, PREFIX_DATA
},
478 { "vscatterdp%XW", { MVexVSIBDWpX
, XM
}, PREFIX_DATA
},
479 { "vscatterqp%XW", { MVexVSIBQWpX
, XMGatherQ
}, PREFIX_DATA
},
482 { "%XEvfmaddsub213p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
483 { "%XEvfmsubadd213p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
485 { "%XEvfmadd213p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
486 { "%XEvfmadd213s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
487 { PREFIX_TABLE (PREFIX_EVEX_0F38AA
) },
488 { PREFIX_TABLE (PREFIX_EVEX_0F38AB
) },
489 { "%XEvfnmadd213p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
490 { "%XEvfnmadd213s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
491 { "%XEvfnmsub213p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
492 { "%XEvfnmsub213s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
498 { VEX_W_TABLE (VEX_W_0F38B4
) },
499 { VEX_W_TABLE (VEX_W_0F38B5
) },
500 { "%XEvfmaddsub231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
501 { "%XEvfmsubadd231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
503 { "%XEvfmadd231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
504 { "%XEvfmadd231s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
505 { "%XEvfmsub231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
506 { "%XEvfmsub231s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
507 { "%XEvfnmadd231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
508 { "%XEvfnmadd231s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
509 { "%XEvfnmsub231p%XW", { XM
, Vex
, EXx
, EXxEVexR
}, PREFIX_DATA
},
510 { "%XEvfnmsub231s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexR
}, PREFIX_DATA
},
516 { "vpconflict%DQ", { XM
, EXx
}, PREFIX_DATA
},
518 { EVEX_LEN_TABLE (EVEX_LEN_0F38C6
) },
519 { EVEX_LEN_TABLE (EVEX_LEN_0F38C7
) },
521 { "vexp2p%XW", { XM
, EXx
, EXxEVexS
}, PREFIX_DATA
},
523 { "vrcp28p%XW", { XM
, EXx
, EXxEVexS
}, PREFIX_DATA
},
524 { "vrcp28s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexS
}, PREFIX_DATA
},
525 { "vrsqrt28p%XW", { XM
, EXx
, EXxEVexS
}, PREFIX_DATA
},
526 { "vrsqrt28s%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexS
}, PREFIX_DATA
},
528 { VEX_W_TABLE (VEX_W_0F38CF
) },
532 { VEX_W_TABLE (VEX_W_0F38D2
) },
533 { VEX_W_TABLE (VEX_W_0F38D3
) },
541 { VEX_W_TABLE (VEX_W_0F38DA
) },
543 { "%XEvaesencY", { XM
, Vex
, EXx
}, PREFIX_DATA
},
544 { "%XEvaesenclastY", { XM
, Vex
, EXx
}, PREFIX_DATA
},
545 { "%XEvaesdecY", { XM
, Vex
, EXx
}, PREFIX_DATA
},
546 { "%XEvaesdeclastY", { XM
, Vex
, EXx
}, PREFIX_DATA
},
548 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
549 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
550 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
551 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
552 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
553 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
554 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
555 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
557 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
558 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
559 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
560 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
561 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
562 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
563 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
564 { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F38Ex
) },
568 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F2_L_0
) },
569 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F3_L_0
) },
571 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F5_L_0
) },
572 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F6_L_0
) },
573 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F7_L_0
) },
587 { EVEX_LEN_TABLE (EVEX_LEN_0F3A00
) },
588 { EVEX_LEN_TABLE (EVEX_LEN_0F3A01
) },
590 { "valign%DQ", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
591 { VEX_W_TABLE (VEX_W_0F3A04
) },
592 { "%XEvpermilp%XD", { XM
, EXx
, Ib
}, PREFIX_DATA
},
596 { PREFIX_TABLE (PREFIX_EVEX_0F3A08
) },
597 { "vrndscalep%XD", { XM
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
598 { PREFIX_TABLE (PREFIX_EVEX_0F3A0A
) },
599 { "vrndscales%XD", { XMScalar
, VexScalar
, EXq
, EXxEVexS
, Ib
}, PREFIX_DATA
},
603 { "%XEvpalignr", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
609 { VEX_LEN_TABLE (VEX_LEN_0F3A14
) },
610 { VEX_LEN_TABLE (VEX_LEN_0F3A15
) },
611 { VEX_LEN_TABLE (VEX_LEN_0F3A16
) },
612 { VEX_LEN_TABLE (VEX_LEN_0F3A17
) },
614 { EVEX_LEN_TABLE (EVEX_LEN_0F3A18
) },
615 { EVEX_LEN_TABLE (EVEX_LEN_0F3A19
) },
616 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A
) },
617 { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B
) },
619 { VEX_W_TABLE (VEX_W_0F3A1D
) },
620 { "vpcmpu%DQ", { MaskG
, Vex
, EXx
, VPCMP
}, PREFIX_DATA
},
621 { "vpcmp%DQ", { MaskG
, Vex
, EXx
, VPCMP
}, PREFIX_DATA
},
623 { VEX_LEN_TABLE (VEX_LEN_0F3A20
) },
624 { VEX_W_TABLE (EVEX_W_0F3A21
) },
625 { VEX_LEN_TABLE (VEX_LEN_0F3A22
) },
626 { EVEX_LEN_TABLE (EVEX_LEN_0F3A23
) },
628 { "vpternlog%DQ", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
629 { PREFIX_TABLE (PREFIX_EVEX_0F3A26
) },
630 { PREFIX_TABLE (PREFIX_EVEX_0F3A27
) },
650 { EVEX_LEN_TABLE (EVEX_LEN_0F3A38
) },
651 { EVEX_LEN_TABLE (EVEX_LEN_0F3A39
) },
652 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A
) },
653 { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B
) },
656 { "vpcmpu%BW", { MaskG
, Vex
, EXx
, VPCMP
}, PREFIX_DATA
},
657 { "vpcmp%BW", { MaskG
, Vex
, EXx
, VPCMP
}, PREFIX_DATA
},
661 { VEX_W_TABLE (EVEX_W_0F3A42
) },
662 { EVEX_LEN_TABLE (EVEX_LEN_0F3A43
) },
663 { "%XEvpclmulqdqY", { XM
, Vex
, EXx
, PCLMUL
}, PREFIX_DATA
},
677 { "vrangep%XW", { XM
, Vex
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
678 { "vranges%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexS
, Ib
}, PREFIX_DATA
},
681 { "vfixupimmp%XW", { XM
, Vex
, EXx
, EXxEVexS
, Ib
}, PREFIX_DATA
},
682 { "vfixupimms%XW", { XMScalar
, VexScalar
, EXdq
, EXxEVexS
, Ib
}, PREFIX_DATA
},
683 { PREFIX_TABLE (PREFIX_EVEX_0F3A56
) },
684 { PREFIX_TABLE (PREFIX_EVEX_0F3A57
) },
701 { PREFIX_TABLE (PREFIX_EVEX_0F3A66
) },
702 { PREFIX_TABLE (PREFIX_EVEX_0F3A67
) },
713 { VEX_W_TABLE (EVEX_W_0F3A70
) },
714 { "vpshld%DQ", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
715 { VEX_W_TABLE (EVEX_W_0F3A72
) },
716 { "vpshrd%DQ", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
805 { PREFIX_TABLE (PREFIX_EVEX_0F3AC2
) },
818 { VEX_W_TABLE (VEX_W_0F3ACE
) },
819 { VEX_W_TABLE (VEX_W_0F3ACF
) },
857 { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F3AF0_L_0
) },
878 { "%NFaddB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
879 { "%NFaddS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
880 { "%NFaddB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
881 { "%NFaddS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
887 { "%NForB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
888 { "%NForS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
889 { "%NForB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
890 { "%NForS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
896 { "adcB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
897 { "adcS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
898 { "adcB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
899 { "adcS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
905 { "sbbB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
906 { "sbbS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
907 { "sbbB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
908 { "sbbS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
914 { "%NFandB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
915 { "%NFandS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
916 { "%NFandB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
917 { "%NFandS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
918 { "%NFshldS", { VexGv
, Ev
, Gv
, Ib
}, PREFIX_NP_OR_DATA
},
923 { "%NFsubB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
924 { "%NFsubS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
925 { "%NFsubB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
926 { "%NFsubS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
927 { "%NFshrdS", { VexGv
, Ev
, Gv
, Ib
}, PREFIX_NP_OR_DATA
},
932 { "%NFxorB", { VexGb
, Eb
, Gb
}, NO_PREFIX
},
933 { "%NFxorS", { VexGv
, Ev
, Gv
}, PREFIX_NP_OR_DATA
},
934 { "%NFxorB", { VexGb
, Gb
, EbS
}, NO_PREFIX
},
935 { "%NFxorS", { VexGv
, Gv
, EvS
}, PREFIX_NP_OR_DATA
},
941 { "%NEccmp%SCB%DF", { Eb
, Gb
}, 0 },
942 { "%NEccmp%SCS%DF", { Ev
, Gv
}, PREFIX_NP_OR_DATA
},
943 { "%NEccmp%SCB%DF", { Gb
, EbS
}, 0 },
944 { "%NEccmp%SCS%DF", { Gv
, EvS
}, PREFIX_NP_OR_DATA
},
950 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
951 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
952 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
953 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
954 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
955 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
956 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
957 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
959 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
960 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
961 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
962 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
963 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
964 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
965 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
966 { PREFIX_TABLE (PREFIX_EVEX_MAP4_4x
) },
986 { MOD_TABLE (MOD_EVEX_MAP4_60
) },
987 { MOD_TABLE (MOD_EVEX_MAP4_61
) },
991 { "wrussK", { M
, Gdq
}, PREFIX_DATA
},
992 { PREFIX_TABLE (PREFIX_0F38F6
) },
996 { "%NFimul%ZUS", { Gv
, Ev
, Iv
}, PREFIX_NP_OR_DATA
},
998 { "%NFimul%ZUS", { Gv
, Ev
, sIb
}, PREFIX_NP_OR_DATA
},
1022 { REG_TABLE (REG_EVEX_MAP4_80
) },
1023 { REG_TABLE (REG_EVEX_MAP4_81
) },
1025 { REG_TABLE (REG_EVEX_MAP4_83
) },
1026 { "%NEctest%SCB%DF", { Eb
, Gb
}, NO_PREFIX
},
1027 { "%NEctest%SCS%DF", { Ev
, Gv
}, PREFIX_NP_OR_DATA
},
1031 { "%NFpopcntS", { Gv
, Ev
}, PREFIX_NP_OR_DATA
},
1038 { REG_TABLE (REG_EVEX_MAP4_8F
) },
1063 { "%NFshldS", { VexGv
, Ev
, Gv
, CL
}, PREFIX_NP_OR_DATA
},
1072 { "%NFshrdS", { VexGv
, Ev
, Gv
, CL
}, PREFIX_NP_OR_DATA
},
1074 { "%NFimulS", { VexGv
, Gv
, Ev
}, PREFIX_NP_OR_DATA
},
1094 { REG_TABLE (REG_C0
) },
1095 { REG_TABLE (REG_C1
) },
1112 { REG_TABLE (REG_D0
) },
1113 { REG_TABLE (REG_D1
) },
1114 { REG_TABLE (REG_D2
) },
1115 { REG_TABLE (REG_D3
) },
1148 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F0
) },
1149 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F1
) },
1150 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F2
) },
1152 { "%NFtzcntS", { Gv
, Ev
}, PREFIX_NP_OR_DATA
},
1153 { "%NFlzcntS", { Gv
, Ev
}, PREFIX_NP_OR_DATA
},
1154 { REG_TABLE (REG_EVEX_MAP4_F6
) },
1155 { REG_TABLE (REG_EVEX_MAP4_F7
) },
1157 { PREFIX_TABLE (PREFIX_EVEX_MAP4_F8
) },
1158 { "movdiri", { Mdq
, Gdq
}, NO_PREFIX
},
1161 { PREFIX_TABLE (PREFIX_0F38FC
) },
1163 { REG_TABLE (REG_EVEX_MAP4_FE
) },
1164 { REG_TABLE (REG_EVEX_MAP4_FF
) },
1187 { PREFIX_TABLE (PREFIX_EVEX_MAP5_10
) },
1188 { PREFIX_TABLE (PREFIX_EVEX_MAP5_11
) },
1196 { PREFIX_TABLE (PREFIX_EVEX_MAP5_18
) },
1199 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1B
) },
1201 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D
) },
1202 { PREFIX_TABLE (PREFIX_EVEX_MAP5_1E
) },
1216 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A
) },
1218 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C
) },
1219 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D
) },
1220 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E
) },
1221 { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F
) },
1260 { PREFIX_TABLE (PREFIX_EVEX_MAP5_51
) },
1268 { PREFIX_TABLE (PREFIX_EVEX_MAP5_58
) },
1269 { PREFIX_TABLE (PREFIX_EVEX_MAP5_59
) },
1270 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A
) },
1271 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B
) },
1272 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C
) },
1273 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D
) },
1274 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E
) },
1275 { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F
) },
1286 { PREFIX_TABLE (PREFIX_EVEX_MAP5_68
) },
1287 { PREFIX_TABLE (PREFIX_EVEX_MAP5_69
) },
1288 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6A
) },
1289 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6B
) },
1290 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6C
) },
1291 { PREFIX_TABLE (PREFIX_EVEX_MAP5_6D
) },
1292 { "vmovwY", { XMScalar
, Edw
}, PREFIX_DATA
},
1299 { PREFIX_TABLE (PREFIX_EVEX_MAP5_74
) },
1304 { PREFIX_TABLE (PREFIX_EVEX_MAP5_78
) },
1305 { PREFIX_TABLE (PREFIX_EVEX_MAP5_79
) },
1306 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A
) },
1307 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B
) },
1308 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C
) },
1309 { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D
) },
1310 { "vmovw", { Edw
, XMScalar
}, PREFIX_DATA
},
1481 { PREFIX_TABLE (PREFIX_EVEX_MAP6_13
) },
1509 { PREFIX_TABLE (PREFIX_EVEX_MAP6_2C
) },
1510 { "vscalefs%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1534 { PREFIX_TABLE (PREFIX_EVEX_MAP6_42
) },
1535 { "vgetexps%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexS
}, PREFIX_DATA
},
1545 { PREFIX_TABLE (PREFIX_EVEX_MAP6_4C
) },
1546 { "vrcps%XH", { XMScalar
, VexScalar
, EXw
}, PREFIX_DATA
},
1547 { PREFIX_TABLE (PREFIX_EVEX_MAP6_4E
) },
1548 { "vrsqrts%XH", { XMScalar
, VexScalar
, EXw
}, PREFIX_DATA
},
1556 { PREFIX_TABLE (PREFIX_EVEX_MAP6_56
) },
1557 { PREFIX_TABLE (PREFIX_EVEX_MAP6_57
) },
1628 { "vfmaddsub132p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1629 { "vfmsubadd132p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1631 { PREFIX_TABLE (PREFIX_EVEX_MAP6_98
) },
1632 { "vfmadd132s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1633 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9A
) },
1634 { "vfmsub132s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1635 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9C
) },
1636 { "vfnmadd132s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1637 { PREFIX_TABLE (PREFIX_EVEX_MAP6_9E
) },
1638 { "vfnmsub132s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1646 { "vfmaddsub213p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1647 { "vfmsubadd213p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1649 { PREFIX_TABLE (PREFIX_EVEX_MAP6_A8
) },
1650 { "vfmadd213s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1651 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AA
) },
1652 { "vfmsub213s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1653 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AC
) },
1654 { "vfnmadd213s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1655 { PREFIX_TABLE (PREFIX_EVEX_MAP6_AE
) },
1656 { "vfnmsub213s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1664 { "vfmaddsub231p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1665 { "vfmsubadd231p%XH", { XM
, Vex
, EXxh
, EXxEVexR
}, PREFIX_DATA
},
1667 { PREFIX_TABLE (PREFIX_EVEX_MAP6_B8
) },
1668 { "vfmadd231s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1669 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BA
) },
1670 { "vfmsub231s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1671 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BC
) },
1672 { "vfnmadd231s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1673 { PREFIX_TABLE (PREFIX_EVEX_MAP6_BE
) },
1674 { "vfnmsub231s%XH", { XMScalar
, VexScalar
, EXw
, EXxEVexR
}, PREFIX_DATA
},
1700 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6
) },
1701 { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7
) },