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