Home | History | Annotate | Line # | Download | only in opcodes
i386-dis-evex.h revision 1.9
      1  1.1  christos static const struct dis386 evex_table[][256] = {
      2  1.1  christos   /* EVEX_0F */
      3  1.1  christos   {
      4  1.1  christos     /* 00 */
      5  1.1  christos     { Bad_Opcode },
      6  1.1  christos     { Bad_Opcode },
      7  1.1  christos     { Bad_Opcode },
      8  1.1  christos     { Bad_Opcode },
      9  1.1  christos     { Bad_Opcode },
     10  1.1  christos     { Bad_Opcode },
     11  1.1  christos     { Bad_Opcode },
     12  1.1  christos     { Bad_Opcode },
     13  1.1  christos     /* 08 */
     14  1.1  christos     { Bad_Opcode },
     15  1.1  christos     { Bad_Opcode },
     16  1.1  christos     { Bad_Opcode },
     17  1.1  christos     { Bad_Opcode },
     18  1.1  christos     { Bad_Opcode },
     19  1.1  christos     { Bad_Opcode },
     20  1.1  christos     { Bad_Opcode },
     21  1.1  christos     { Bad_Opcode },
     22  1.1  christos     /* 10 */
     23  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F10) },
     24  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F11) },
     25  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F12) },
     26  1.9  christos     { MOD_TABLE (MOD_EVEX_0F13) },
     27  1.9  christos     { "vunpcklpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     28  1.9  christos     { "vunpckhpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     29  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F16) },
     30  1.9  christos     { MOD_TABLE (MOD_EVEX_0F17) },
     31  1.1  christos     /* 18 */
     32  1.1  christos     { Bad_Opcode },
     33  1.1  christos     { Bad_Opcode },
     34  1.1  christos     { Bad_Opcode },
     35  1.1  christos     { Bad_Opcode },
     36  1.1  christos     { Bad_Opcode },
     37  1.1  christos     { Bad_Opcode },
     38  1.1  christos     { Bad_Opcode },
     39  1.1  christos     { Bad_Opcode },
     40  1.1  christos     /* 20 */
     41  1.1  christos     { Bad_Opcode },
     42  1.1  christos     { Bad_Opcode },
     43  1.1  christos     { Bad_Opcode },
     44  1.1  christos     { Bad_Opcode },
     45  1.1  christos     { Bad_Opcode },
     46  1.1  christos     { Bad_Opcode },
     47  1.1  christos     { Bad_Opcode },
     48  1.1  christos     { Bad_Opcode },
     49  1.1  christos     /* 28 */
     50  1.9  christos     { "vmovapX",	{ XM, EXx }, PREFIX_OPCODE },
     51  1.9  christos     { "vmovapX",	{ EXxS, XM }, PREFIX_OPCODE },
     52  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
     53  1.9  christos     { MOD_TABLE (MOD_EVEX_0F2B) },
     54  1.9  christos     { PREFIX_TABLE (PREFIX_VEX_0F2C) },
     55  1.9  christos     { PREFIX_TABLE (PREFIX_VEX_0F2D) },
     56  1.9  christos     { PREFIX_TABLE (PREFIX_VEX_0F2E) },
     57  1.9  christos     { PREFIX_TABLE (PREFIX_VEX_0F2F) },
     58  1.1  christos     /* 30 */
     59  1.1  christos     { Bad_Opcode },
     60  1.1  christos     { Bad_Opcode },
     61  1.1  christos     { Bad_Opcode },
     62  1.1  christos     { Bad_Opcode },
     63  1.1  christos     { Bad_Opcode },
     64  1.1  christos     { Bad_Opcode },
     65  1.1  christos     { Bad_Opcode },
     66  1.1  christos     { Bad_Opcode },
     67  1.1  christos     /* 38 */
     68  1.1  christos     { Bad_Opcode },
     69  1.1  christos     { Bad_Opcode },
     70  1.1  christos     { Bad_Opcode },
     71  1.1  christos     { Bad_Opcode },
     72  1.1  christos     { Bad_Opcode },
     73  1.1  christos     { Bad_Opcode },
     74  1.1  christos     { Bad_Opcode },
     75  1.1  christos     { Bad_Opcode },
     76  1.1  christos     /* 40 */
     77  1.1  christos     { Bad_Opcode },
     78  1.1  christos     { Bad_Opcode },
     79  1.1  christos     { Bad_Opcode },
     80  1.1  christos     { Bad_Opcode },
     81  1.1  christos     { Bad_Opcode },
     82  1.1  christos     { Bad_Opcode },
     83  1.1  christos     { Bad_Opcode },
     84  1.1  christos     { Bad_Opcode },
     85  1.1  christos     /* 48 */
     86  1.1  christos     { Bad_Opcode },
     87  1.1  christos     { Bad_Opcode },
     88  1.1  christos     { Bad_Opcode },
     89  1.1  christos     { Bad_Opcode },
     90  1.1  christos     { Bad_Opcode },
     91  1.1  christos     { Bad_Opcode },
     92  1.1  christos     { Bad_Opcode },
     93  1.1  christos     { Bad_Opcode },
     94  1.1  christos     /* 50 */
     95  1.1  christos     { Bad_Opcode },
     96  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F51) },
     97  1.1  christos     { Bad_Opcode },
     98  1.1  christos     { Bad_Opcode },
     99  1.9  christos     { "vandpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
    100  1.9  christos     { "vandnpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
    101  1.9  christos     { "vorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
    102  1.9  christos     { "vxorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
    103  1.1  christos     /* 58 */
    104  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F58) },
    105  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F59) },
    106  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
    107  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
    108  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
    109  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
    110  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
    111  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
    112  1.1  christos     /* 60 */
    113  1.9  christos     { "vpunpcklbw",	{ XM, Vex, EXx }, PREFIX_DATA },
    114  1.9  christos     { "vpunpcklwd",	{ XM, Vex, EXx }, PREFIX_DATA },
    115  1.9  christos     { VEX_W_TABLE (EVEX_W_0F62) },
    116  1.9  christos     { "vpacksswb",	{ XM, Vex, EXx }, PREFIX_DATA },
    117  1.9  christos     { "vpcmpgtb",	{ XMask, Vex, EXx }, PREFIX_DATA },
    118  1.9  christos     { "vpcmpgtw",	{ XMask, Vex, EXx }, PREFIX_DATA },
    119  1.9  christos     { VEX_W_TABLE (EVEX_W_0F66) },
    120  1.9  christos     { "vpackuswb",	{ XM, Vex, EXx }, PREFIX_DATA },
    121  1.1  christos     /* 68 */
    122  1.9  christos     { "vpunpckhbw",	{ XM, Vex, EXx }, PREFIX_DATA },
    123  1.9  christos     { "vpunpckhwd",	{ XM, Vex, EXx }, PREFIX_DATA },
    124  1.9  christos     { VEX_W_TABLE (EVEX_W_0F6A) },
    125  1.9  christos     { VEX_W_TABLE (EVEX_W_0F6B) },
    126  1.9  christos     { VEX_W_TABLE (EVEX_W_0F6C) },
    127  1.9  christos     { VEX_W_TABLE (EVEX_W_0F6D) },
    128  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F6E) },
    129  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
    130  1.1  christos     /* 70 */
    131  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F70) },
    132  1.3  christos     { REG_TABLE (REG_EVEX_0F71) },
    133  1.1  christos     { REG_TABLE (REG_EVEX_0F72) },
    134  1.1  christos     { REG_TABLE (REG_EVEX_0F73) },
    135  1.9  christos     { "vpcmpeqb",	{ XMask, Vex, EXx }, PREFIX_DATA },
    136  1.9  christos     { "vpcmpeqw",	{ XMask, Vex, EXx }, PREFIX_DATA },
    137  1.9  christos     { VEX_W_TABLE (EVEX_W_0F76) },
    138  1.1  christos     { Bad_Opcode },
    139  1.1  christos     /* 78 */
    140  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F78) },
    141  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F79) },
    142  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
    143  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
    144  1.1  christos     { Bad_Opcode },
    145  1.1  christos     { Bad_Opcode },
    146  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
    147  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
    148  1.1  christos     /* 80 */
    149  1.1  christos     { Bad_Opcode },
    150  1.1  christos     { Bad_Opcode },
    151  1.1  christos     { Bad_Opcode },
    152  1.1  christos     { Bad_Opcode },
    153  1.1  christos     { Bad_Opcode },
    154  1.1  christos     { Bad_Opcode },
    155  1.1  christos     { Bad_Opcode },
    156  1.1  christos     { Bad_Opcode },
    157  1.1  christos     /* 88 */
    158  1.1  christos     { Bad_Opcode },
    159  1.1  christos     { Bad_Opcode },
    160  1.1  christos     { Bad_Opcode },
    161  1.1  christos     { Bad_Opcode },
    162  1.1  christos     { Bad_Opcode },
    163  1.1  christos     { Bad_Opcode },
    164  1.1  christos     { Bad_Opcode },
    165  1.1  christos     { Bad_Opcode },
    166  1.1  christos     /* 90 */
    167  1.1  christos     { Bad_Opcode },
    168  1.1  christos     { Bad_Opcode },
    169  1.1  christos     { Bad_Opcode },
    170  1.1  christos     { Bad_Opcode },
    171  1.1  christos     { Bad_Opcode },
    172  1.1  christos     { Bad_Opcode },
    173  1.1  christos     { Bad_Opcode },
    174  1.1  christos     { Bad_Opcode },
    175  1.1  christos     /* 98 */
    176  1.1  christos     { Bad_Opcode },
    177  1.1  christos     { Bad_Opcode },
    178  1.1  christos     { Bad_Opcode },
    179  1.1  christos     { Bad_Opcode },
    180  1.1  christos     { Bad_Opcode },
    181  1.1  christos     { Bad_Opcode },
    182  1.1  christos     { Bad_Opcode },
    183  1.1  christos     { Bad_Opcode },
    184  1.1  christos     /* A0 */
    185  1.1  christos     { Bad_Opcode },
    186  1.1  christos     { Bad_Opcode },
    187  1.1  christos     { Bad_Opcode },
    188  1.1  christos     { Bad_Opcode },
    189  1.1  christos     { Bad_Opcode },
    190  1.1  christos     { Bad_Opcode },
    191  1.1  christos     { Bad_Opcode },
    192  1.1  christos     { Bad_Opcode },
    193  1.1  christos     /* A8 */
    194  1.1  christos     { Bad_Opcode },
    195  1.1  christos     { Bad_Opcode },
    196  1.1  christos     { Bad_Opcode },
    197  1.1  christos     { Bad_Opcode },
    198  1.1  christos     { Bad_Opcode },
    199  1.1  christos     { Bad_Opcode },
    200  1.1  christos     { Bad_Opcode },
    201  1.1  christos     { Bad_Opcode },
    202  1.1  christos     /* B0 */
    203  1.1  christos     { Bad_Opcode },
    204  1.1  christos     { Bad_Opcode },
    205  1.1  christos     { Bad_Opcode },
    206  1.1  christos     { Bad_Opcode },
    207  1.1  christos     { Bad_Opcode },
    208  1.1  christos     { Bad_Opcode },
    209  1.1  christos     { Bad_Opcode },
    210  1.1  christos     { Bad_Opcode },
    211  1.1  christos     /* B8 */
    212  1.1  christos     { Bad_Opcode },
    213  1.1  christos     { Bad_Opcode },
    214  1.1  christos     { Bad_Opcode },
    215  1.1  christos     { Bad_Opcode },
    216  1.1  christos     { Bad_Opcode },
    217  1.1  christos     { Bad_Opcode },
    218  1.1  christos     { Bad_Opcode },
    219  1.1  christos     { Bad_Opcode },
    220  1.1  christos     /* C0 */
    221  1.1  christos     { Bad_Opcode },
    222  1.1  christos     { Bad_Opcode },
    223  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
    224  1.1  christos     { Bad_Opcode },
    225  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0FC4) },
    226  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0FC5) },
    227  1.9  christos     { "vshufpX",	{ XM, Vex, EXx, Ib }, PREFIX_OPCODE },
    228  1.1  christos     { Bad_Opcode },
    229  1.1  christos     /* C8 */
    230  1.1  christos     { Bad_Opcode },
    231  1.1  christos     { Bad_Opcode },
    232  1.1  christos     { Bad_Opcode },
    233  1.1  christos     { Bad_Opcode },
    234  1.1  christos     { Bad_Opcode },
    235  1.1  christos     { Bad_Opcode },
    236  1.1  christos     { Bad_Opcode },
    237  1.1  christos     { Bad_Opcode },
    238  1.1  christos     /* D0 */
    239  1.1  christos     { Bad_Opcode },
    240  1.9  christos     { "vpsrlw",		{ XM, Vex, EXxmm }, PREFIX_DATA },
    241  1.9  christos     { VEX_W_TABLE (EVEX_W_0FD2) },
    242  1.9  christos     { VEX_W_TABLE (EVEX_W_0FD3) },
    243  1.9  christos     { VEX_W_TABLE (EVEX_W_0FD4) },
    244  1.9  christos     { "vpmullw",	{ XM, Vex, EXx }, PREFIX_DATA },
    245  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0FD6) },
    246  1.1  christos     { Bad_Opcode },
    247  1.1  christos     /* D8 */
    248  1.9  christos     { "vpsubusb",	{ XM, Vex, EXx }, PREFIX_DATA },
    249  1.9  christos     { "vpsubusw",	{ XM, Vex, EXx }, PREFIX_DATA },
    250  1.9  christos     { "vpminub",	{ XM, Vex, EXx }, PREFIX_DATA },
    251  1.9  christos     { "vpand%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    252  1.9  christos     { "vpaddusb",	{ XM, Vex, EXx }, PREFIX_DATA },
    253  1.9  christos     { "vpaddusw",	{ XM, Vex, EXx }, PREFIX_DATA },
    254  1.9  christos     { "vpmaxub",	{ XM, Vex, EXx }, PREFIX_DATA },
    255  1.9  christos     { "vpandn%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    256  1.1  christos     /* E0 */
    257  1.9  christos     { "vpavgb",		{ XM, Vex, EXx }, PREFIX_DATA },
    258  1.9  christos     { "vpsraw",		{ XM, Vex, EXxmm }, PREFIX_DATA },
    259  1.9  christos     { "vpsra%DQ",	{ XM, Vex, EXxmm }, PREFIX_DATA },
    260  1.9  christos     { "vpavgw",		{ XM, Vex, EXx }, PREFIX_DATA },
    261  1.9  christos     { "vpmulhuw",	{ XM, Vex, EXx }, PREFIX_DATA },
    262  1.9  christos     { "vpmulhw",	{ XM, Vex, EXx }, PREFIX_DATA },
    263  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
    264  1.9  christos     { VEX_W_TABLE (EVEX_W_0FE7) },
    265  1.1  christos     /* E8 */
    266  1.9  christos     { "vpsubsb",	{ XM, Vex, EXx }, PREFIX_DATA },
    267  1.9  christos     { "vpsubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    268  1.9  christos     { "vpminsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    269  1.9  christos     { "vpor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    270  1.9  christos     { "vpaddsb",	{ XM, Vex, EXx }, PREFIX_DATA },
    271  1.9  christos     { "vpaddsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    272  1.9  christos     { "vpmaxsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    273  1.9  christos     { "vpxor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    274  1.1  christos     /* F0 */
    275  1.1  christos     { Bad_Opcode },
    276  1.9  christos     { "vpsllw",		{ XM, Vex, EXxmm }, PREFIX_DATA },
    277  1.9  christos     { VEX_W_TABLE (EVEX_W_0FF2) },
    278  1.9  christos     { VEX_W_TABLE (EVEX_W_0FF3) },
    279  1.9  christos     { VEX_W_TABLE (EVEX_W_0FF4) },
    280  1.9  christos     { "vpmaddwd",	{ XM, Vex, EXx }, PREFIX_DATA },
    281  1.9  christos     { "vpsadbw",	{ XM, Vex, EXx }, PREFIX_DATA },
    282  1.1  christos     { Bad_Opcode },
    283  1.1  christos     /* F8 */
    284  1.9  christos     { "vpsubb",		{ XM, Vex, EXx }, PREFIX_DATA },
    285  1.9  christos     { "vpsubw",		{ XM, Vex, EXx }, PREFIX_DATA },
    286  1.9  christos     { VEX_W_TABLE (EVEX_W_0FFA) },
    287  1.9  christos     { VEX_W_TABLE (EVEX_W_0FFB) },
    288  1.9  christos     { "vpaddb",		{ XM, Vex, EXx }, PREFIX_DATA },
    289  1.9  christos     { "vpaddw",		{ XM, Vex, EXx }, PREFIX_DATA },
    290  1.9  christos     { VEX_W_TABLE (EVEX_W_0FFE) },
    291  1.1  christos     { Bad_Opcode },
    292  1.1  christos   },
    293  1.1  christos   /* EVEX_0F38 */
    294  1.1  christos   {
    295  1.1  christos     /* 00 */
    296  1.9  christos     { "vpshufb",	{ XM, Vex, EXx }, PREFIX_DATA },
    297  1.1  christos     { Bad_Opcode },
    298  1.1  christos     { Bad_Opcode },
    299  1.1  christos     { Bad_Opcode },
    300  1.9  christos     { "vpmaddubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    301  1.1  christos     { Bad_Opcode },
    302  1.1  christos     { Bad_Opcode },
    303  1.1  christos     { Bad_Opcode },
    304  1.1  christos     /* 08 */
    305  1.1  christos     { Bad_Opcode },
    306  1.1  christos     { Bad_Opcode },
    307  1.1  christos     { Bad_Opcode },
    308  1.9  christos     { "vpmulhrsw",	{ XM, Vex, EXx }, PREFIX_DATA },
    309  1.9  christos     { VEX_W_TABLE (VEX_W_0F380C) },
    310  1.9  christos     { VEX_W_TABLE (EVEX_W_0F380D) },
    311  1.1  christos     { Bad_Opcode },
    312  1.1  christos     { Bad_Opcode },
    313  1.1  christos     /* 10 */
    314  1.3  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
    315  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
    316  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
    317  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
    318  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
    319  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
    320  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3816) },
    321  1.1  christos     { Bad_Opcode },
    322  1.1  christos     /* 18 */
    323  1.9  christos     { VEX_W_TABLE (VEX_W_0F3818) },
    324  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3819) },
    325  1.9  christos     { VEX_W_TABLE (EVEX_W_0F381A) },
    326  1.9  christos     { VEX_W_TABLE (EVEX_W_0F381B) },
    327  1.9  christos     { "vpabsb",		{ XM, EXx }, PREFIX_DATA },
    328  1.9  christos     { "vpabsw",		{ XM, EXx }, PREFIX_DATA },
    329  1.9  christos     { VEX_W_TABLE (EVEX_W_0F381E) },
    330  1.9  christos     { VEX_W_TABLE (EVEX_W_0F381F) },
    331  1.1  christos     /* 20 */
    332  1.3  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
    333  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
    334  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
    335  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
    336  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
    337  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
    338  1.3  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
    339  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
    340  1.1  christos     /* 28 */
    341  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
    342  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
    343  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
    344  1.9  christos     { VEX_W_TABLE (EVEX_W_0F382B) },
    345  1.9  christos     { "vscalefp%XW",	{ XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    346  1.9  christos     { "vscalefs%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    347  1.1  christos     { Bad_Opcode },
    348  1.1  christos     { Bad_Opcode },
    349  1.1  christos     /* 30 */
    350  1.3  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
    351  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
    352  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
    353  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
    354  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
    355  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
    356  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3836) },
    357  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3837) },
    358  1.1  christos     /* 38 */
    359  1.3  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
    360  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
    361  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
    362  1.9  christos     { "vpminu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    363  1.9  christos     { "vpmaxsb",	{ XM, Vex, EXx }, PREFIX_DATA },
    364  1.9  christos     { "vpmaxs%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    365  1.9  christos     { "vpmaxuw",	{ XM, Vex, EXx }, PREFIX_DATA },
    366  1.9  christos     { "vpmaxu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    367  1.1  christos     /* 40 */
    368  1.9  christos     { "vpmull%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    369  1.1  christos     { Bad_Opcode },
    370  1.9  christos     { "vgetexpp%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
    371  1.9  christos     { "vgetexps%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, PREFIX_DATA },
    372  1.9  christos     { "vplzcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
    373  1.9  christos     { "vpsrlv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    374  1.9  christos     { "vpsrav%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    375  1.9  christos     { "vpsllv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    376  1.1  christos     /* 48 */
    377  1.1  christos     { Bad_Opcode },
    378  1.1  christos     { Bad_Opcode },
    379  1.1  christos     { Bad_Opcode },
    380  1.1  christos     { Bad_Opcode },
    381  1.9  christos     { "vrcp14p%XW",	{ XM, EXx }, PREFIX_DATA },
    382  1.9  christos     { "vrcp14s%XW",	{ XMScalar, VexScalar, EXVexWdqScalar }, PREFIX_DATA },
    383  1.9  christos     { "vrsqrt14p%XW",	{ XM, EXx }, 0 },
    384  1.9  christos     { "vrsqrt14s%XW",	{ XMScalar, VexScalar, EXVexWdqScalar }, PREFIX_DATA },
    385  1.1  christos     /* 50 */
    386  1.9  christos     { "vpdpbusd",	{ XM, Vex, EXx }, PREFIX_DATA },
    387  1.9  christos     { "vpdpbusds",	{ XM, Vex, EXx }, PREFIX_DATA },
    388  1.7  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
    389  1.7  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
    390  1.9  christos     { "vpopcnt%BW",	{ XM, EXx }, PREFIX_DATA },
    391  1.9  christos     { "vpopcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
    392  1.1  christos     { Bad_Opcode },
    393  1.1  christos     { Bad_Opcode },
    394  1.1  christos     /* 58 */
    395  1.9  christos     { VEX_W_TABLE (VEX_W_0F3858) },
    396  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3859) },
    397  1.9  christos     { VEX_W_TABLE (EVEX_W_0F385A) },
    398  1.9  christos     { VEX_W_TABLE (EVEX_W_0F385B) },
    399  1.1  christos     { Bad_Opcode },
    400  1.1  christos     { Bad_Opcode },
    401  1.1  christos     { Bad_Opcode },
    402  1.1  christos     { Bad_Opcode },
    403  1.1  christos     /* 60 */
    404  1.1  christos     { Bad_Opcode },
    405  1.1  christos     { Bad_Opcode },
    406  1.9  christos     { "vpexpand%BW", { XM, EXbwUnit }, PREFIX_DATA },
    407  1.9  christos     { "vpcompress%BW",   { EXbwUnit, XM }, PREFIX_DATA },
    408  1.9  christos     { "vpblendm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    409  1.9  christos     { "vblendmp%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
    410  1.9  christos     { "vpblendm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
    411  1.1  christos     { Bad_Opcode },
    412  1.1  christos     /* 68 */
    413  1.9  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3868) },
    414  1.1  christos     { Bad_Opcode },
    415  1.1  christos     { Bad_Opcode },
    416  1.1  christos     { Bad_Opcode },
    417  1.1  christos     { Bad_Opcode },
    418  1.1  christos     { Bad_Opcode },
    419  1.1  christos     { Bad_Opcode },
    420  1.1  christos     { Bad_Opcode },
    421  1.1  christos     /* 70 */
    422  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3870) },
    423  1.9  christos     { "vpshldv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
    424  1.8  christos     { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
    425  1.9  christos     { "vpshrdv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
    426  1.1  christos     { Bad_Opcode },
    427  1.9  christos     { "vpermi2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
    428  1.9  christos     { "vpermi2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    429  1.9  christos     { "vpermi2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
    430  1.1  christos     /* 78 */
    431  1.9  christos     { VEX_W_TABLE (VEX_W_0F3878) },
    432  1.9  christos     { VEX_W_TABLE (VEX_W_0F3879) },
    433  1.9  christos     { VEX_W_TABLE (EVEX_W_0F387A) },
    434  1.9  christos     { VEX_W_TABLE (EVEX_W_0F387B) },
    435  1.9  christos     { MOD_TABLE (MOD_EVEX_0F387C) },
    436  1.9  christos     { "vpermt2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
    437  1.9  christos     { "vpermt2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
    438  1.9  christos     { "vpermt2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
    439  1.1  christos     /* 80 */
    440  1.1  christos     { Bad_Opcode },
    441  1.1  christos     { Bad_Opcode },
    442  1.1  christos     { Bad_Opcode },
    443  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3883) },
    444  1.1  christos     { Bad_Opcode },
    445  1.1  christos     { Bad_Opcode },
    446  1.1  christos     { Bad_Opcode },
    447  1.1  christos     { Bad_Opcode },
    448  1.1  christos     /* 88 */
    449  1.9  christos     { "vexpandp%XW",	{ XM, EXEvexXGscat }, PREFIX_DATA },
    450  1.9  christos     { "vpexpand%DQ",	{ XM, EXEvexXGscat }, PREFIX_DATA },
    451  1.9  christos     { "vcompressp%XW",	{ EXEvexXGscat, XM }, PREFIX_DATA },
    452  1.9  christos     { "vpcompress%DQ",	{ EXEvexXGscat, XM }, PREFIX_DATA },
    453  1.1  christos     { Bad_Opcode },
    454  1.9  christos     { "vperm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
    455  1.1  christos     { Bad_Opcode },
    456  1.9  christos     { "vpshufbitqmb",  { XMask, Vex, EXx }, PREFIX_DATA },
    457  1.1  christos     /* 90 */
    458  1.9  christos     { "vpgatherd%DQ",	{ XM, MVexVSIBDWpX }, PREFIX_DATA },
    459  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3891) },
    460  1.9  christos     { "vgatherdp%XW",	{ XM, MVexVSIBDWpX}, PREFIX_DATA },
    461  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3893) },
    462  1.1  christos     { Bad_Opcode },
    463  1.1  christos     { Bad_Opcode },
    464  1.9  christos     { "vfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    465  1.9  christos     { "vfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    466  1.1  christos     /* 98 */
    467  1.9  christos     { "vfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    468  1.9  christos     { "vfmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    469  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
    470  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
    471  1.9  christos     { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    472  1.9  christos     { "vfnmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    473  1.9  christos     { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    474  1.9  christos     { "vfnmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    475  1.1  christos     /* A0 */
    476  1.9  christos     { "vpscatterd%DQ",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
    477  1.9  christos     { VEX_W_TABLE (EVEX_W_0F38A1) },
    478  1.9  christos     { "vscatterdp%XW",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
    479  1.9  christos     { VEX_W_TABLE (EVEX_W_0F38A3) },
    480  1.1  christos     { Bad_Opcode },
    481  1.1  christos     { Bad_Opcode },
    482  1.9  christos     { "vfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    483  1.9  christos     { "vfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    484  1.1  christos     /* A8 */
    485  1.9  christos     { "vfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    486  1.9  christos     { "vfmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    487  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
    488  1.1  christos     { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
    489  1.9  christos     { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    490  1.9  christos     { "vfnmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    491  1.9  christos     { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    492  1.9  christos     { "vfnmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    493  1.1  christos     /* B0 */
    494  1.1  christos     { Bad_Opcode },
    495  1.1  christos     { Bad_Opcode },
    496  1.1  christos     { Bad_Opcode },
    497  1.1  christos     { Bad_Opcode },
    498  1.9  christos     { "vpmadd52luq",	{ XM, Vex, EXx }, PREFIX_DATA },
    499  1.9  christos     { "vpmadd52huq",	{ XM, Vex, EXx }, PREFIX_DATA },
    500  1.9  christos     { "vfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    501  1.9  christos     { "vfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    502  1.1  christos     /* B8 */
    503  1.9  christos     { "vfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    504  1.9  christos     { "vfmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    505  1.9  christos     { "vfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    506  1.9  christos     { "vfmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    507  1.9  christos     { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    508  1.9  christos     { "vfnmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    509  1.9  christos     { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
    510  1.9  christos     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, PREFIX_DATA },
    511  1.1  christos     /* C0 */
    512  1.1  christos     { Bad_Opcode },
    513  1.1  christos     { Bad_Opcode },
    514  1.1  christos     { Bad_Opcode },
    515  1.1  christos     { Bad_Opcode },
    516  1.9  christos     { "vpconflict%DQ",	{ XM, EXx }, PREFIX_DATA },
    517  1.1  christos     { Bad_Opcode },
    518  1.1  christos     { REG_TABLE (REG_EVEX_0F38C6) },
    519  1.1  christos     { REG_TABLE (REG_EVEX_0F38C7) },
    520  1.1  christos     /* C8 */
    521  1.9  christos     { "vexp2p%XW",        { XM, EXx, EXxEVexS }, PREFIX_DATA },
    522  1.1  christos     { Bad_Opcode },
    523  1.9  christos     { "vrcp28p%XW",       { XM, EXx, EXxEVexS }, PREFIX_DATA },
    524  1.9  christos     { "vrcp28s%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, PREFIX_DATA },
    525  1.9  christos     { "vrsqrt28p%XW",     { XM, EXx, EXxEVexS }, PREFIX_DATA },
    526  1.9  christos     { "vrsqrt28s%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, PREFIX_DATA },
    527  1.1  christos     { Bad_Opcode },
    528  1.9  christos     { VEX_W_TABLE (VEX_W_0F38CF) },
    529  1.1  christos     /* D0 */
    530  1.1  christos     { Bad_Opcode },
    531  1.1  christos     { Bad_Opcode },
    532  1.1  christos     { Bad_Opcode },
    533  1.1  christos     { Bad_Opcode },
    534  1.1  christos     { Bad_Opcode },
    535  1.1  christos     { Bad_Opcode },
    536  1.1  christos     { Bad_Opcode },
    537  1.1  christos     { Bad_Opcode },
    538  1.1  christos     /* D8 */
    539  1.1  christos     { Bad_Opcode },
    540  1.1  christos     { Bad_Opcode },
    541  1.1  christos     { Bad_Opcode },
    542  1.1  christos     { Bad_Opcode },
    543  1.9  christos     { "vaesenc",	{ XM, Vex, EXx }, PREFIX_DATA },
    544  1.9  christos     { "vaesenclast",	{ XM, Vex, EXx }, PREFIX_DATA },
    545  1.9  christos     { "vaesdec",	{ XM, Vex, EXx }, PREFIX_DATA },
    546  1.9  christos     { "vaesdeclast",	{ XM, Vex, EXx }, PREFIX_DATA },
    547  1.1  christos     /* E0 */
    548  1.1  christos     { Bad_Opcode },
    549  1.1  christos     { Bad_Opcode },
    550  1.1  christos     { Bad_Opcode },
    551  1.1  christos     { Bad_Opcode },
    552  1.1  christos     { Bad_Opcode },
    553  1.1  christos     { Bad_Opcode },
    554  1.1  christos     { Bad_Opcode },
    555  1.1  christos     { Bad_Opcode },
    556  1.1  christos     /* E8 */
    557  1.1  christos     { Bad_Opcode },
    558  1.1  christos     { Bad_Opcode },
    559  1.1  christos     { Bad_Opcode },
    560  1.1  christos     { Bad_Opcode },
    561  1.1  christos     { Bad_Opcode },
    562  1.1  christos     { Bad_Opcode },
    563  1.1  christos     { Bad_Opcode },
    564  1.1  christos     { Bad_Opcode },
    565  1.1  christos     /* F0 */
    566  1.1  christos     { Bad_Opcode },
    567  1.1  christos     { Bad_Opcode },
    568  1.1  christos     { Bad_Opcode },
    569  1.1  christos     { Bad_Opcode },
    570  1.1  christos     { Bad_Opcode },
    571  1.1  christos     { Bad_Opcode },
    572  1.1  christos     { Bad_Opcode },
    573  1.1  christos     { Bad_Opcode },
    574  1.1  christos     /* F8 */
    575  1.1  christos     { Bad_Opcode },
    576  1.1  christos     { Bad_Opcode },
    577  1.1  christos     { Bad_Opcode },
    578  1.1  christos     { Bad_Opcode },
    579  1.1  christos     { Bad_Opcode },
    580  1.1  christos     { Bad_Opcode },
    581  1.1  christos     { Bad_Opcode },
    582  1.1  christos     { Bad_Opcode },
    583  1.1  christos   },
    584  1.1  christos   /* EVEX_0F3A */
    585  1.1  christos   {
    586  1.1  christos     /* 00 */
    587  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A00) },
    588  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A01) },
    589  1.1  christos     { Bad_Opcode },
    590  1.9  christos     { "valign%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    591  1.9  christos     { VEX_W_TABLE (VEX_W_0F3A04) },
    592  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A05) },
    593  1.1  christos     { Bad_Opcode },
    594  1.1  christos     { Bad_Opcode },
    595  1.1  christos     /* 08 */
    596  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A08) },
    597  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A09) },
    598  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A0A) },
    599  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A0B) },
    600  1.1  christos     { Bad_Opcode },
    601  1.1  christos     { Bad_Opcode },
    602  1.1  christos     { Bad_Opcode },
    603  1.9  christos     { "vpalignr",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    604  1.1  christos     /* 10 */
    605  1.1  christos     { Bad_Opcode },
    606  1.1  christos     { Bad_Opcode },
    607  1.1  christos     { Bad_Opcode },
    608  1.1  christos     { Bad_Opcode },
    609  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A14) },
    610  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A15) },
    611  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A16) },
    612  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A17) },
    613  1.1  christos     /* 18 */
    614  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A18) },
    615  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A19) },
    616  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A1A) },
    617  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A1B) },
    618  1.9  christos     { Bad_Opcode },
    619  1.9  christos     { VEX_W_TABLE (VEX_W_0F3A1D) },
    620  1.9  christos     { "vpcmpu%DQ",	{ XMask, Vex, EXx, VPCMP }, PREFIX_DATA },
    621  1.9  christos     { "vpcmp%DQ",	{ XMask, Vex, EXx, VPCMP }, PREFIX_DATA },
    622  1.1  christos     /* 20 */
    623  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A20) },
    624  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A21) },
    625  1.9  christos     { EVEX_LEN_TABLE (EVEX_LEN_0F3A22) },
    626  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A23) },
    627  1.9  christos     { Bad_Opcode },
    628  1.9  christos     { "vpternlog%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    629  1.9  christos     { "vgetmantp%XW",	{ XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
    630  1.9  christos     { "vgetmants%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, PREFIX_DATA },
    631  1.1  christos     /* 28 */
    632  1.1  christos     { Bad_Opcode },
    633  1.1  christos     { Bad_Opcode },
    634  1.1  christos     { Bad_Opcode },
    635  1.1  christos     { Bad_Opcode },
    636  1.1  christos     { Bad_Opcode },
    637  1.1  christos     { Bad_Opcode },
    638  1.1  christos     { Bad_Opcode },
    639  1.1  christos     { Bad_Opcode },
    640  1.1  christos     /* 30 */
    641  1.1  christos     { Bad_Opcode },
    642  1.1  christos     { Bad_Opcode },
    643  1.1  christos     { Bad_Opcode },
    644  1.1  christos     { Bad_Opcode },
    645  1.1  christos     { Bad_Opcode },
    646  1.1  christos     { Bad_Opcode },
    647  1.1  christos     { Bad_Opcode },
    648  1.1  christos     { Bad_Opcode },
    649  1.1  christos     /* 38 */
    650  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A38) },
    651  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A39) },
    652  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A3A) },
    653  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A3B) },
    654  1.1  christos     { Bad_Opcode },
    655  1.1  christos     { Bad_Opcode },
    656  1.9  christos     { "vpcmpu%BW",	{ XMask, Vex, EXx, VPCMP }, PREFIX_DATA },
    657  1.9  christos     { "vpcmp%BW",	{ XMask, Vex, EXx, VPCMP }, PREFIX_DATA },
    658  1.1  christos     /* 40 */
    659  1.1  christos     { Bad_Opcode },
    660  1.1  christos     { Bad_Opcode },
    661  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A42) },
    662  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A43) },
    663  1.9  christos     { "vpclmulqdq",	{ XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
    664  1.1  christos     { Bad_Opcode },
    665  1.1  christos     { Bad_Opcode },
    666  1.1  christos     { Bad_Opcode },
    667  1.1  christos     /* 48 */
    668  1.1  christos     { Bad_Opcode },
    669  1.1  christos     { Bad_Opcode },
    670  1.1  christos     { Bad_Opcode },
    671  1.1  christos     { Bad_Opcode },
    672  1.1  christos     { Bad_Opcode },
    673  1.1  christos     { Bad_Opcode },
    674  1.1  christos     { Bad_Opcode },
    675  1.1  christos     { Bad_Opcode },
    676  1.1  christos     /* 50 */
    677  1.9  christos     { "vrangep%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
    678  1.9  christos     { "vranges%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, PREFIX_DATA },
    679  1.1  christos     { Bad_Opcode },
    680  1.1  christos     { Bad_Opcode },
    681  1.9  christos     { "vfixupimmp%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
    682  1.9  christos     { "vfixupimms%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, PREFIX_DATA },
    683  1.9  christos     { "vreducep%XW",	{ XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
    684  1.9  christos     { "vreduces%XW",	{ XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, PREFIX_DATA },
    685  1.1  christos     /* 58 */
    686  1.1  christos     { Bad_Opcode },
    687  1.1  christos     { Bad_Opcode },
    688  1.1  christos     { Bad_Opcode },
    689  1.1  christos     { Bad_Opcode },
    690  1.1  christos     { Bad_Opcode },
    691  1.1  christos     { Bad_Opcode },
    692  1.1  christos     { Bad_Opcode },
    693  1.1  christos     { Bad_Opcode },
    694  1.1  christos     /* 60 */
    695  1.1  christos     { Bad_Opcode },
    696  1.1  christos     { Bad_Opcode },
    697  1.1  christos     { Bad_Opcode },
    698  1.1  christos     { Bad_Opcode },
    699  1.1  christos     { Bad_Opcode },
    700  1.1  christos     { Bad_Opcode },
    701  1.9  christos     { "vfpclassp%XW%XZ",	{ XMask, EXx, Ib }, PREFIX_DATA },
    702  1.9  christos     { "vfpclasss%XW",	{ XMask, EXVexWdqScalar, Ib }, PREFIX_DATA },
    703  1.1  christos     /* 68 */
    704  1.1  christos     { Bad_Opcode },
    705  1.1  christos     { Bad_Opcode },
    706  1.1  christos     { Bad_Opcode },
    707  1.1  christos     { Bad_Opcode },
    708  1.1  christos     { Bad_Opcode },
    709  1.1  christos     { Bad_Opcode },
    710  1.1  christos     { Bad_Opcode },
    711  1.1  christos     { Bad_Opcode },
    712  1.1  christos     /* 70 */
    713  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A70) },
    714  1.9  christos     { "vpshld%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
    715  1.9  christos     { VEX_W_TABLE (EVEX_W_0F3A72) },
    716  1.9  christos     { "vpshrd%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
    717  1.1  christos     { Bad_Opcode },
    718  1.1  christos     { Bad_Opcode },
    719  1.1  christos     { Bad_Opcode },
    720  1.1  christos     { Bad_Opcode },
    721  1.1  christos     /* 78 */
    722  1.1  christos     { Bad_Opcode },
    723  1.1  christos     { Bad_Opcode },
    724  1.1  christos     { Bad_Opcode },
    725  1.1  christos     { Bad_Opcode },
    726  1.1  christos     { Bad_Opcode },
    727  1.1  christos     { Bad_Opcode },
    728  1.1  christos     { Bad_Opcode },
    729  1.1  christos     { Bad_Opcode },
    730  1.1  christos     /* 80 */
    731  1.1  christos     { Bad_Opcode },
    732  1.1  christos     { Bad_Opcode },
    733  1.1  christos     { Bad_Opcode },
    734  1.1  christos     { Bad_Opcode },
    735  1.1  christos     { Bad_Opcode },
    736  1.1  christos     { Bad_Opcode },
    737  1.1  christos     { Bad_Opcode },
    738  1.1  christos     { Bad_Opcode },
    739  1.1  christos     /* 88 */
    740  1.1  christos     { Bad_Opcode },
    741  1.1  christos     { Bad_Opcode },
    742  1.1  christos     { Bad_Opcode },
    743  1.1  christos     { Bad_Opcode },
    744  1.1  christos     { Bad_Opcode },
    745  1.1  christos     { Bad_Opcode },
    746  1.1  christos     { Bad_Opcode },
    747  1.1  christos     { Bad_Opcode },
    748  1.1  christos     /* 90 */
    749  1.1  christos     { Bad_Opcode },
    750  1.1  christos     { Bad_Opcode },
    751  1.1  christos     { Bad_Opcode },
    752  1.1  christos     { Bad_Opcode },
    753  1.1  christos     { Bad_Opcode },
    754  1.1  christos     { Bad_Opcode },
    755  1.1  christos     { Bad_Opcode },
    756  1.1  christos     { Bad_Opcode },
    757  1.1  christos     /* 98 */
    758  1.1  christos     { Bad_Opcode },
    759  1.1  christos     { Bad_Opcode },
    760  1.1  christos     { Bad_Opcode },
    761  1.1  christos     { Bad_Opcode },
    762  1.1  christos     { Bad_Opcode },
    763  1.1  christos     { Bad_Opcode },
    764  1.1  christos     { Bad_Opcode },
    765  1.1  christos     { Bad_Opcode },
    766  1.1  christos     /* A0 */
    767  1.1  christos     { Bad_Opcode },
    768  1.1  christos     { Bad_Opcode },
    769  1.1  christos     { Bad_Opcode },
    770  1.1  christos     { Bad_Opcode },
    771  1.1  christos     { Bad_Opcode },
    772  1.1  christos     { Bad_Opcode },
    773  1.1  christos     { Bad_Opcode },
    774  1.1  christos     { Bad_Opcode },
    775  1.1  christos     /* A8 */
    776  1.1  christos     { Bad_Opcode },
    777  1.1  christos     { Bad_Opcode },
    778  1.1  christos     { Bad_Opcode },
    779  1.1  christos     { Bad_Opcode },
    780  1.1  christos     { Bad_Opcode },
    781  1.1  christos     { Bad_Opcode },
    782  1.1  christos     { Bad_Opcode },
    783  1.1  christos     { Bad_Opcode },
    784  1.1  christos     /* B0 */
    785  1.1  christos     { Bad_Opcode },
    786  1.1  christos     { Bad_Opcode },
    787  1.1  christos     { Bad_Opcode },
    788  1.1  christos     { Bad_Opcode },
    789  1.1  christos     { Bad_Opcode },
    790  1.1  christos     { Bad_Opcode },
    791  1.1  christos     { Bad_Opcode },
    792  1.1  christos     { Bad_Opcode },
    793  1.1  christos     /* B8 */
    794  1.1  christos     { Bad_Opcode },
    795  1.1  christos     { Bad_Opcode },
    796  1.1  christos     { Bad_Opcode },
    797  1.1  christos     { Bad_Opcode },
    798  1.1  christos     { Bad_Opcode },
    799  1.1  christos     { Bad_Opcode },
    800  1.1  christos     { Bad_Opcode },
    801  1.1  christos     { Bad_Opcode },
    802  1.1  christos     /* C0 */
    803  1.1  christos     { Bad_Opcode },
    804  1.1  christos     { Bad_Opcode },
    805  1.1  christos     { Bad_Opcode },
    806  1.1  christos     { Bad_Opcode },
    807  1.1  christos     { Bad_Opcode },
    808  1.1  christos     { Bad_Opcode },
    809  1.1  christos     { Bad_Opcode },
    810  1.1  christos     { Bad_Opcode },
    811  1.1  christos     /* C8 */
    812  1.1  christos     { Bad_Opcode },
    813  1.1  christos     { Bad_Opcode },
    814  1.1  christos     { Bad_Opcode },
    815  1.1  christos     { Bad_Opcode },
    816  1.1  christos     { Bad_Opcode },
    817  1.1  christos     { Bad_Opcode },
    818  1.9  christos     { VEX_W_TABLE (VEX_W_0F3ACE) },
    819  1.9  christos     { VEX_W_TABLE (VEX_W_0F3ACF) },
    820  1.1  christos     /* D0 */
    821  1.1  christos     { Bad_Opcode },
    822  1.1  christos     { Bad_Opcode },
    823  1.1  christos     { Bad_Opcode },
    824  1.1  christos     { Bad_Opcode },
    825  1.1  christos     { Bad_Opcode },
    826  1.1  christos     { Bad_Opcode },
    827  1.1  christos     { Bad_Opcode },
    828  1.1  christos     { Bad_Opcode },
    829  1.1  christos     /* D8 */
    830  1.1  christos     { Bad_Opcode },
    831  1.1  christos     { Bad_Opcode },
    832  1.1  christos     { Bad_Opcode },
    833  1.1  christos     { Bad_Opcode },
    834  1.1  christos     { Bad_Opcode },
    835  1.1  christos     { Bad_Opcode },
    836  1.1  christos     { Bad_Opcode },
    837  1.1  christos     { Bad_Opcode },
    838  1.1  christos     /* E0 */
    839  1.1  christos     { Bad_Opcode },
    840  1.1  christos     { Bad_Opcode },
    841  1.1  christos     { Bad_Opcode },
    842  1.1  christos     { Bad_Opcode },
    843  1.1  christos     { Bad_Opcode },
    844  1.1  christos     { Bad_Opcode },
    845  1.1  christos     { Bad_Opcode },
    846  1.1  christos     { Bad_Opcode },
    847  1.1  christos     /* E8 */
    848  1.1  christos     { Bad_Opcode },
    849  1.1  christos     { Bad_Opcode },
    850  1.1  christos     { Bad_Opcode },
    851  1.1  christos     { Bad_Opcode },
    852  1.1  christos     { Bad_Opcode },
    853  1.1  christos     { Bad_Opcode },
    854  1.1  christos     { Bad_Opcode },
    855  1.1  christos     { Bad_Opcode },
    856  1.1  christos     /* F0 */
    857  1.1  christos     { Bad_Opcode },
    858  1.1  christos     { Bad_Opcode },
    859  1.1  christos     { Bad_Opcode },
    860  1.1  christos     { Bad_Opcode },
    861  1.1  christos     { Bad_Opcode },
    862  1.1  christos     { Bad_Opcode },
    863  1.1  christos     { Bad_Opcode },
    864  1.1  christos     { Bad_Opcode },
    865  1.1  christos     /* F8 */
    866  1.1  christos     { Bad_Opcode },
    867  1.1  christos     { Bad_Opcode },
    868  1.1  christos     { Bad_Opcode },
    869  1.1  christos     { Bad_Opcode },
    870  1.1  christos     { Bad_Opcode },
    871  1.1  christos     { Bad_Opcode },
    872  1.1  christos     { Bad_Opcode },
    873  1.1  christos     { Bad_Opcode },
    874  1.1  christos   },
    875  1.1  christos };
    876