Home | History | Annotate | Line # | Download | only in opcodes
i386-dis-evex-prefix.h revision 1.1.1.3
      1  1.1.1.2  christos   /* PREFIX_EVEX_0F5B */
      2      1.1  christos   {
      3  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
      4  1.1.1.3  christos     { "%XEvcvttp%XS2dq", { XM, EXx, EXxEVexS }, 0 },
      5  1.1.1.3  christos     { "%XEvcvtp%XS2dq", { XM, EXx, EXxEVexR }, 0 },
      6      1.1  christos   },
      7  1.1.1.2  christos   /* PREFIX_EVEX_0F6F */
      8      1.1  christos   {
      9      1.1  christos     { Bad_Opcode },
     10  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
     11  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
     12  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
     13      1.1  christos   },
     14  1.1.1.2  christos   /* PREFIX_EVEX_0F70 */
     15      1.1  christos   {
     16      1.1  christos     { Bad_Opcode },
     17  1.1.1.3  christos     { "%XEvpshufhw",	{ XM, EXx, Ib }, 0 },
     18  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F70_P_2) },
     19  1.1.1.3  christos     { "%XEvpshuflw",	{ XM, EXx, Ib }, 0 },
     20      1.1  christos   },
     21  1.1.1.2  christos   /* PREFIX_EVEX_0F78 */
     22      1.1  christos   {
     23  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F78_P_0) },
     24  1.1.1.2  christos     { "vcvttss2usi",	{ Gdq, EXd, EXxEVexS }, 0 },
     25  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F78_P_2) },
     26  1.1.1.2  christos     { "vcvttsd2usi",	{ Gdq, EXq, EXxEVexS }, 0 },
     27      1.1  christos   },
     28  1.1.1.2  christos   /* PREFIX_EVEX_0F79 */
     29      1.1  christos   {
     30  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F79_P_0) },
     31  1.1.1.2  christos     { "vcvtss2usi",	{ Gdq, EXd, EXxEVexR }, 0 },
     32  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F79_P_2) },
     33  1.1.1.2  christos     { "vcvtsd2usi",	{ Gdq, EXq, EXxEVexR }, 0 },
     34      1.1  christos   },
     35  1.1.1.2  christos   /* PREFIX_EVEX_0F7A */
     36      1.1  christos   {
     37      1.1  christos     { Bad_Opcode },
     38  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
     39  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
     40  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
     41      1.1  christos   },
     42  1.1.1.2  christos   /* PREFIX_EVEX_0F7B */
     43      1.1  christos   {
     44      1.1  christos     { Bad_Opcode },
     45  1.1.1.3  christos     { "vcvtusi2ssY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
     46  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
     47  1.1.1.3  christos     { "vcvtusi2sdY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
     48      1.1  christos   },
     49  1.1.1.2  christos   /* PREFIX_EVEX_0F7E */
     50      1.1  christos   {
     51      1.1  christos     { Bad_Opcode },
     52  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
     53  1.1.1.2  christos     { VEX_LEN_TABLE (VEX_LEN_0F7E_P_2) },
     54      1.1  christos   },
     55  1.1.1.2  christos   /* PREFIX_EVEX_0F7F */
     56      1.1  christos   {
     57      1.1  christos     { Bad_Opcode },
     58  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
     59  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
     60  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
     61      1.1  christos   },
     62  1.1.1.2  christos   /* PREFIX_EVEX_0FC2 */
     63      1.1  christos   {
     64  1.1.1.2  christos     { "vcmppX",	{ MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
     65  1.1.1.2  christos     { "vcmps%XS",	{ MaskG, VexScalar, EXd, EXxEVexS, CMP }, 0 },
     66  1.1.1.2  christos     { "vcmppX",	{ MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
     67  1.1.1.2  christos     { "vcmps%XD",	{ MaskG, VexScalar, EXq, EXxEVexS, CMP }, 0 },
     68      1.1  christos   },
     69  1.1.1.2  christos   /* PREFIX_EVEX_0FE6 */
     70      1.1  christos   {
     71      1.1  christos     { Bad_Opcode },
     72  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
     73  1.1.1.3  christos     { "%XEvcvttp%XD2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
     74  1.1.1.3  christos     { "%XEvcvtp%XD2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
     75      1.1  christos   },
     76  1.1.1.2  christos   /* PREFIX_EVEX_0F3810 */
     77      1.1  christos   {
     78      1.1  christos     { Bad_Opcode },
     79  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
     80  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
     81      1.1  christos   },
     82  1.1.1.2  christos   /* PREFIX_EVEX_0F3811 */
     83      1.1  christos   {
     84      1.1  christos     { Bad_Opcode },
     85  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
     86  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
     87      1.1  christos   },
     88  1.1.1.2  christos   /* PREFIX_EVEX_0F3812 */
     89      1.1  christos   {
     90      1.1  christos     { Bad_Opcode },
     91  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
     92  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
     93      1.1  christos   },
     94  1.1.1.2  christos   /* PREFIX_EVEX_0F3813 */
     95      1.1  christos   {
     96      1.1  christos     { Bad_Opcode },
     97  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
     98  1.1.1.3  christos     { "%XEvcvtph2p%XS", { XM, EXxmmq, EXxEVexS }, 0 },
     99      1.1  christos   },
    100  1.1.1.2  christos   /* PREFIX_EVEX_0F3814 */
    101      1.1  christos   {
    102      1.1  christos     { Bad_Opcode },
    103  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
    104  1.1.1.2  christos     { "vprorv%DQ",	{ XM, Vex, EXx }, 0 },
    105      1.1  christos   },
    106  1.1.1.2  christos   /* PREFIX_EVEX_0F3815 */
    107      1.1  christos   {
    108      1.1  christos     { Bad_Opcode },
    109  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
    110  1.1.1.2  christos     { "vprolv%DQ",	{ XM, Vex, EXx }, 0 },
    111      1.1  christos   },
    112  1.1.1.2  christos   /* PREFIX_EVEX_0F3820 */
    113      1.1  christos   {
    114      1.1  christos     { Bad_Opcode },
    115  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
    116  1.1.1.3  christos     { "%XEvpmovsxbw",	{ XM, EXxmmq }, 0 },
    117      1.1  christos   },
    118  1.1.1.2  christos   /* PREFIX_EVEX_0F3821 */
    119      1.1  christos   {
    120      1.1  christos     { Bad_Opcode },
    121  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
    122  1.1.1.3  christos     { "%XEvpmovsxbd",	{ XM, EXxmmqd }, 0 },
    123      1.1  christos   },
    124  1.1.1.2  christos   /* PREFIX_EVEX_0F3822 */
    125      1.1  christos   {
    126      1.1  christos     { Bad_Opcode },
    127  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
    128  1.1.1.3  christos     { "%XEvpmovsxbq",	{ XM, EXxmmdw }, 0 },
    129      1.1  christos   },
    130  1.1.1.2  christos   /* PREFIX_EVEX_0F3823 */
    131      1.1  christos   {
    132      1.1  christos     { Bad_Opcode },
    133  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
    134  1.1.1.3  christos     { "%XEvpmovsxwd",	{ XM, EXxmmq }, 0 },
    135      1.1  christos   },
    136  1.1.1.2  christos   /* PREFIX_EVEX_0F3824 */
    137      1.1  christos   {
    138      1.1  christos     { Bad_Opcode },
    139  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
    140  1.1.1.3  christos     { "%XEvpmovsxwq",	{ XM, EXxmmqd }, 0 },
    141      1.1  christos   },
    142  1.1.1.2  christos   /* PREFIX_EVEX_0F3825 */
    143      1.1  christos   {
    144      1.1  christos     { Bad_Opcode },
    145  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
    146  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
    147      1.1  christos   },
    148  1.1.1.2  christos   /* PREFIX_EVEX_0F3826 */
    149      1.1  christos   {
    150      1.1  christos     { Bad_Opcode },
    151  1.1.1.2  christos     { "vptestnm%BW",	{ MaskG, Vex, EXx }, 0 },
    152  1.1.1.2  christos     { "vptestm%BW",	{ MaskG, Vex, EXx }, 0 },
    153      1.1  christos   },
    154  1.1.1.2  christos   /* PREFIX_EVEX_0F3827 */
    155      1.1  christos   {
    156      1.1  christos     { Bad_Opcode },
    157  1.1.1.2  christos     { "vptestnm%DQ",	{ MaskG, Vex, EXx }, 0 },
    158  1.1.1.2  christos     { "vptestm%DQ",	{ MaskG, Vex, EXx }, 0 },
    159      1.1  christos   },
    160  1.1.1.2  christos   /* PREFIX_EVEX_0F3828 */
    161      1.1  christos   {
    162      1.1  christos     { Bad_Opcode },
    163  1.1.1.3  christos     { "vpmovm2Y%BW",	{ XM, MaskR }, 0 },
    164  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
    165      1.1  christos   },
    166  1.1.1.2  christos   /* PREFIX_EVEX_0F3829 */
    167      1.1  christos   {
    168      1.1  christos     { Bad_Opcode },
    169  1.1.1.3  christos     { "vpmov%BW2mY",	{ MaskG, Ux }, 0 },
    170  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
    171      1.1  christos   },
    172  1.1.1.2  christos   /* PREFIX_EVEX_0F382A */
    173      1.1  christos   {
    174      1.1  christos     { Bad_Opcode },
    175  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
    176  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
    177      1.1  christos   },
    178  1.1.1.2  christos   /* PREFIX_EVEX_0F3830 */
    179      1.1  christos   {
    180      1.1  christos     { Bad_Opcode },
    181  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
    182  1.1.1.3  christos     { "%XEvpmovzxbw",	{ XM, EXxmmq }, 0 },
    183      1.1  christos   },
    184  1.1.1.2  christos   /* PREFIX_EVEX_0F3831 */
    185      1.1  christos   {
    186      1.1  christos     { Bad_Opcode },
    187  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
    188  1.1.1.3  christos     { "%XEvpmovzxbd",	{ XM, EXxmmqd }, 0 },
    189      1.1  christos   },
    190  1.1.1.2  christos   /* PREFIX_EVEX_0F3832 */
    191      1.1  christos   {
    192      1.1  christos     { Bad_Opcode },
    193  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
    194  1.1.1.3  christos     { "%XEvpmovzxbq",	{ XM, EXxmmdw }, 0 },
    195      1.1  christos   },
    196  1.1.1.2  christos   /* PREFIX_EVEX_0F3833 */
    197      1.1  christos   {
    198      1.1  christos     { Bad_Opcode },
    199  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
    200  1.1.1.3  christos     { "%XEvpmovzxwd",	{ XM, EXxmmq }, 0 },
    201      1.1  christos   },
    202  1.1.1.2  christos   /* PREFIX_EVEX_0F3834 */
    203      1.1  christos   {
    204      1.1  christos     { Bad_Opcode },
    205  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
    206  1.1.1.3  christos     { "%XEvpmovzxwq",	{ XM, EXxmmqd }, 0 },
    207      1.1  christos   },
    208  1.1.1.2  christos   /* PREFIX_EVEX_0F3835 */
    209      1.1  christos   {
    210      1.1  christos     { Bad_Opcode },
    211  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
    212  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
    213      1.1  christos   },
    214  1.1.1.2  christos   /* PREFIX_EVEX_0F3838 */
    215      1.1  christos   {
    216      1.1  christos     { Bad_Opcode },
    217  1.1.1.3  christos     { "vpmovm2Y%DQ",	{ XM, MaskR }, 0 },
    218  1.1.1.3  christos     { "%XEvpminsb",	{ XM, Vex, EXx }, 0 },
    219      1.1  christos   },
    220  1.1.1.2  christos   /* PREFIX_EVEX_0F3839 */
    221      1.1  christos   {
    222      1.1  christos     { Bad_Opcode },
    223  1.1.1.3  christos     { "vpmov%DQ2mY",	{ MaskG, Ux }, 0 },
    224  1.1.1.3  christos     { "%XEvpmins%DQ",	{ XM, Vex, EXx }, 0 },
    225      1.1  christos   },
    226  1.1.1.2  christos   /* PREFIX_EVEX_0F383A */
    227      1.1  christos   {
    228      1.1  christos     { Bad_Opcode },
    229  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
    230  1.1.1.3  christos     { "%XEvpminuw",	{ XM, Vex, EXx }, 0 },
    231      1.1  christos   },
    232  1.1.1.2  christos   /* PREFIX_EVEX_0F3852 */
    233      1.1  christos   {
    234      1.1  christos     { Bad_Opcode },
    235  1.1.1.2  christos     { "vdpbf16p%XS", { XM, Vex, EXx }, 0 },
    236  1.1.1.3  christos     { VEX_W_TABLE (VEX_W_0F3852) },
    237  1.1.1.3  christos     { "vp4dpws%XSd",	{ XM, Vex, Mxmm }, 0 },
    238      1.1  christos   },
    239  1.1.1.2  christos   /* PREFIX_EVEX_0F3853 */
    240      1.1  christos   {
    241      1.1  christos     { Bad_Opcode },
    242      1.1  christos     { Bad_Opcode },
    243  1.1.1.3  christos     { VEX_W_TABLE (VEX_W_0F3853) },
    244  1.1.1.3  christos     { "vp4dpws%XSds",	{ XM, Vex, Mxmm }, 0 },
    245      1.1  christos   },
    246  1.1.1.2  christos   /* PREFIX_EVEX_0F3868 */
    247      1.1  christos   {
    248      1.1  christos     { Bad_Opcode },
    249      1.1  christos     { Bad_Opcode },
    250      1.1  christos     { Bad_Opcode },
    251  1.1.1.3  christos     { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 },
    252      1.1  christos   },
    253  1.1.1.2  christos   /* PREFIX_EVEX_0F3872 */
    254      1.1  christos   {
    255      1.1  christos     { Bad_Opcode },
    256  1.1.1.2  christos     { "vcvtnep%XS2bf16%XY", { XMxmmq, EXx }, 0 },
    257  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
    258  1.1.1.2  christos     { "vcvtne2p%XS2bf16", { XM, Vex, EXx}, 0 },
    259      1.1  christos   },
    260  1.1.1.2  christos   /* PREFIX_EVEX_0F389A */
    261      1.1  christos   {
    262      1.1  christos     { Bad_Opcode },
    263      1.1  christos     { Bad_Opcode },
    264  1.1.1.3  christos     { "%XEvfmsub132p%XW",	{ XM, Vex, EXx, EXxEVexR }, 0 },
    265  1.1.1.3  christos     { "v4fmaddp%XS",	{ XM, Vex, Mxmm }, 0 },
    266      1.1  christos   },
    267  1.1.1.2  christos   /* PREFIX_EVEX_0F389B */
    268      1.1  christos   {
    269      1.1  christos     { Bad_Opcode },
    270      1.1  christos     { Bad_Opcode },
    271  1.1.1.3  christos     { "%XEvfmsub132s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
    272  1.1.1.3  christos     { "v4fmadds%XS",	{ XMScalar, VexScalar, Mxmm }, 0 },
    273      1.1  christos   },
    274  1.1.1.2  christos   /* PREFIX_EVEX_0F38AA */
    275      1.1  christos   {
    276      1.1  christos     { Bad_Opcode },
    277      1.1  christos     { Bad_Opcode },
    278  1.1.1.3  christos     { "%XEvfmsub213p%XW",	{ XM, Vex, EXx, EXxEVexR }, 0 },
    279  1.1.1.3  christos     { "v4fnmaddp%XS",	{ XM, Vex, Mxmm }, 0 },
    280      1.1  christos   },
    281  1.1.1.2  christos   /* PREFIX_EVEX_0F38AB */
    282      1.1  christos   {
    283      1.1  christos     { Bad_Opcode },
    284      1.1  christos     { Bad_Opcode },
    285  1.1.1.3  christos     { "%XEvfmsub213s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
    286  1.1.1.3  christos     { "v4fnmadds%XS",	{ XMScalar, VexScalar, Mxmm }, 0 },
    287      1.1  christos   },
    288  1.1.1.2  christos   /* PREFIX_EVEX_0F3A08 */
    289      1.1  christos   {
    290  1.1.1.2  christos     { "vrndscalep%XH",  { XM, EXxh, EXxEVexS, Ib }, 0 },
    291      1.1  christos     { Bad_Opcode },
    292  1.1.1.2  christos     { "vrndscalep%XS",  { XM, EXx, EXxEVexS, Ib }, 0 },
    293      1.1  christos   },
    294  1.1.1.2  christos   /* PREFIX_EVEX_0F3A0A */
    295      1.1  christos   {
    296  1.1.1.2  christos     { "vrndscales%XH",  { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
    297      1.1  christos     { Bad_Opcode },
    298  1.1.1.2  christos     { "vrndscales%XS",  { XMScalar, VexScalar, EXd, EXxEVexS, Ib }, 0 },
    299      1.1  christos   },
    300  1.1.1.2  christos   /* PREFIX_EVEX_0F3A26 */
    301      1.1  christos   {
    302  1.1.1.2  christos     { "vgetmantp%XH",     { XM, EXxh, EXxEVexS, Ib }, 0 },
    303      1.1  christos     { Bad_Opcode },
    304  1.1.1.2  christos     { "vgetmantp%XW",	{ XM, EXx, EXxEVexS, Ib }, 0 },
    305      1.1  christos   },
    306  1.1.1.2  christos   /* PREFIX_EVEX_0F3A27 */
    307      1.1  christos   {
    308  1.1.1.2  christos     { "vgetmants%XH",     { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
    309      1.1  christos     { Bad_Opcode },
    310  1.1.1.2  christos     { "vgetmants%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
    311      1.1  christos   },
    312  1.1.1.2  christos   /* PREFIX_EVEX_0F3A56 */
    313      1.1  christos   {
    314  1.1.1.2  christos     { "vreducep%XH",      { XM, EXxh, EXxEVexS, Ib }, 0 },
    315      1.1  christos     { Bad_Opcode },
    316  1.1.1.2  christos     { "vreducep%XW",	{ XM, EXx, EXxEVexS, Ib }, 0 },
    317      1.1  christos   },
    318  1.1.1.2  christos   /* PREFIX_EVEX_0F3A57 */
    319      1.1  christos   {
    320  1.1.1.2  christos     { "vreduces%XH",      { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
    321      1.1  christos     { Bad_Opcode },
    322  1.1.1.2  christos     { "vreduces%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
    323      1.1  christos   },
    324  1.1.1.2  christos   /* PREFIX_EVEX_0F3A66 */
    325      1.1  christos   {
    326  1.1.1.2  christos     { "vfpclassp%XH%XZ",  { MaskG, EXxh, Ib }, 0 },
    327      1.1  christos     { Bad_Opcode },
    328  1.1.1.2  christos     { "vfpclassp%XW%XZ",    { MaskG, EXx, Ib }, 0 },
    329      1.1  christos   },
    330  1.1.1.2  christos   /* PREFIX_EVEX_0F3A67 */
    331      1.1  christos   {
    332  1.1.1.2  christos     { "vfpclasss%XH",     { MaskG, EXw, Ib }, 0 },
    333      1.1  christos     { Bad_Opcode },
    334  1.1.1.2  christos     { "vfpclasss%XW",	{ MaskG, EXdq, Ib }, 0 },
    335      1.1  christos   },
    336  1.1.1.2  christos   /* PREFIX_EVEX_0F3AC2 */
    337      1.1  christos   {
    338  1.1.1.2  christos     { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
    339  1.1.1.2  christos     { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
    340      1.1  christos   },
    341  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_D8 */
    342  1.1.1.3  christos   {
    343  1.1.1.3  christos     { "sha1nexte", { XM, EXxmm }, 0 },
    344  1.1.1.3  christos     { REG_TABLE (REG_0F38D8_PREFIX_1) },
    345  1.1.1.3  christos   },
    346  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DA */
    347  1.1.1.3  christos   {
    348  1.1.1.3  christos     { "sha1msg2", { XM, EXxmm }, 0 },
    349  1.1.1.3  christos     { "encodekey128", { Gd, Rd }, 0 },
    350  1.1.1.3  christos   },
    351  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DB */
    352  1.1.1.3  christos   {
    353  1.1.1.3  christos     { "sha256rnds2", { XM, EXxmm, XMM0 }, 0 },
    354  1.1.1.3  christos     { "encodekey256", { Gd, Rd }, 0 },
    355  1.1.1.3  christos   },
    356  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DC */
    357  1.1.1.3  christos   {
    358  1.1.1.3  christos     { "sha256msg1", { XM, EXxmm }, 0 },
    359  1.1.1.3  christos     { "aesenc128kl", { XM, M }, 0 },
    360  1.1.1.3  christos   },
    361  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DD */
    362  1.1.1.3  christos   {
    363  1.1.1.3  christos     { "sha256msg2", { XM, EXxmm }, 0 },
    364  1.1.1.3  christos     { "aesdec128kl", { XM, M }, 0 },
    365  1.1.1.3  christos   },
    366  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DE */
    367  1.1.1.3  christos   {
    368  1.1.1.3  christos     { Bad_Opcode },
    369  1.1.1.3  christos     { "aesenc256kl", { XM, M }, 0 },
    370  1.1.1.3  christos   },
    371  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_DF */
    372  1.1.1.3  christos   {
    373  1.1.1.3  christos     { Bad_Opcode },
    374  1.1.1.3  christos     { "aesdec256kl", { XM, M }, 0 },
    375  1.1.1.3  christos   },
    376  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_F0 */
    377  1.1.1.3  christos   {
    378  1.1.1.3  christos     { "crc32A", { Gdq, Eb }, 0 },
    379  1.1.1.3  christos     { "invept", { Gm, Mo }, 0 },
    380  1.1.1.3  christos   },
    381  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_F1 */
    382  1.1.1.3  christos   {
    383  1.1.1.3  christos     { "crc32Q", { Gdq, Ev }, 0 },
    384  1.1.1.3  christos     { "invvpid", { Gm, Mo }, 0 },
    385  1.1.1.3  christos     { "crc32Q", { Gdq, Ev }, 0 },
    386  1.1.1.3  christos   },
    387  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_F2 */
    388  1.1.1.3  christos   {
    389  1.1.1.3  christos     { Bad_Opcode },
    390  1.1.1.3  christos     { "invpcid", { Gm, M }, 0 },
    391  1.1.1.3  christos   },
    392  1.1.1.3  christos   /* PREFIX_EVEX_MAP4_F8 */
    393  1.1.1.3  christos   {
    394  1.1.1.3  christos     { Bad_Opcode },
    395  1.1.1.3  christos     { MOD_TABLE (MOD_EVEX_MAP4_F8_P_1) },
    396  1.1.1.3  christos     { "movdir64b", { Gva, M }, 0 },
    397  1.1.1.3  christos     { MOD_TABLE (MOD_EVEX_MAP4_F8_P_3) },
    398  1.1.1.3  christos   },
    399  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_10 */
    400      1.1  christos   {
    401      1.1  christos     { Bad_Opcode },
    402  1.1.1.2  christos     { "vmovs%XH", { XMScalar, VexScalarR, EXw }, 0 },
    403      1.1  christos   },
    404  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_11 */
    405      1.1  christos   {
    406      1.1  christos     { Bad_Opcode },
    407  1.1.1.2  christos     { "vmovs%XH", { EXwS, VexScalarR, XMScalar }, 0 },
    408      1.1  christos   },
    409  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_1D */
    410      1.1  christos   {
    411  1.1.1.2  christos     { "vcvtss2s%XH",      { XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
    412      1.1  christos     { Bad_Opcode },
    413  1.1.1.2  christos     { "vcvtps2p%XHx%XY",  { XMxmmq, EXx, EXxEVexR }, 0 },
    414      1.1  christos   },
    415  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_2A */
    416      1.1  christos   {
    417      1.1  christos     { Bad_Opcode },
    418  1.1.1.3  christos     { "vcvtsi2shY{%LQ|}",        { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
    419      1.1  christos   },
    420  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_2C */
    421      1.1  christos   {
    422      1.1  christos     { Bad_Opcode },
    423  1.1.1.2  christos     { "vcvttsh2si",     { Gdq, EXw, EXxEVexS }, 0 },
    424      1.1  christos   },
    425  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_2D */
    426      1.1  christos   {
    427      1.1  christos     { Bad_Opcode },
    428  1.1.1.2  christos     { "vcvtsh2si",      { Gdq, EXw, EXxEVexR }, 0 },
    429      1.1  christos   },
    430  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_2E */
    431      1.1  christos   {
    432  1.1.1.3  christos     { "vucomisY%XH",       { XMScalar, EXw, EXxEVexS }, 0 },
    433      1.1  christos   },
    434  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_2F */
    435      1.1  christos   {
    436  1.1.1.3  christos     { "vcomisY%XH",        { XMScalar, EXw, EXxEVexS }, 0 },
    437      1.1  christos   },
    438  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_51 */
    439      1.1  christos   {
    440  1.1.1.2  christos     { "vsqrtp%XH",        { XM, EXxh, EXxEVexR }, 0 },
    441  1.1.1.2  christos     { "vsqrts%XH",        { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
    442      1.1  christos   },
    443  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_58 */
    444      1.1  christos   {
    445  1.1.1.2  christos     { "vaddp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
    446  1.1.1.2  christos     { "vadds%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
    447      1.1  christos   },
    448  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_59 */
    449      1.1  christos   {
    450  1.1.1.2  christos     { "vmulp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
    451  1.1.1.2  christos     { "vmuls%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
    452      1.1  christos   },
    453  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5A */
    454      1.1  christos   {
    455  1.1.1.2  christos     { "vcvtp%XH2pd",    { XM, EXxmmqdh, EXxEVexS }, 0 },
    456  1.1.1.2  christos     { "vcvts%XH2sd",    { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
    457  1.1.1.2  christos     { "vcvtp%XD2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
    458  1.1.1.2  christos     { "vcvts%XD2sh",    { XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
    459      1.1  christos   },
    460  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5B */
    461      1.1  christos   {
    462  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_MAP5_5B_P_0) },
    463  1.1.1.2  christos     { "vcvttp%XH2dq",   { XM, EXxmmqh, EXxEVexS }, 0 },
    464  1.1.1.2  christos     { "vcvtp%XH2dq",    { XM, EXxmmqh, EXxEVexR }, 0 },
    465      1.1  christos   },
    466  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5C */
    467      1.1  christos   {
    468  1.1.1.2  christos     { "vsubp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
    469  1.1.1.2  christos     { "vsubs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
    470      1.1  christos   },
    471  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5D */
    472      1.1  christos   {
    473  1.1.1.2  christos     { "vminp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
    474  1.1.1.2  christos     { "vmins%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
    475      1.1  christos   },
    476  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5E */
    477      1.1  christos   {
    478  1.1.1.2  christos     { "vdivp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
    479  1.1.1.2  christos     { "vdivs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
    480      1.1  christos   },
    481  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_5F */
    482      1.1  christos   {
    483  1.1.1.2  christos     { "vmaxp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
    484  1.1.1.2  christos     { "vmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
    485      1.1  christos   },
    486  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_78 */
    487      1.1  christos   {
    488  1.1.1.2  christos     { "vcvttp%XH2udq",  { XM, EXxmmqh, EXxEVexS }, 0 },
    489  1.1.1.2  christos     { "vcvttsh2usi",    { Gdq, EXw, EXxEVexS }, 0 },
    490  1.1.1.2  christos     { "vcvttp%XH2uqq",  { XM, EXxmmqdh, EXxEVexS }, 0 },
    491      1.1  christos   },
    492  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_79 */
    493      1.1  christos   {
    494  1.1.1.2  christos     { "vcvtp%XH2udq",   { XM, EXxmmqh, EXxEVexR }, 0 },
    495  1.1.1.2  christos     { "vcvtsh2usi",     { Gdq, EXw, EXxEVexR }, 0 },
    496  1.1.1.2  christos     { "vcvtp%XH2uqq",   { XM, EXxmmqdh, EXxEVexR }, 0 },
    497      1.1  christos   },
    498  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_7A */
    499      1.1  christos   {
    500      1.1  christos     { Bad_Opcode },
    501      1.1  christos     { Bad_Opcode },
    502  1.1.1.2  christos     { "vcvttp%XH2qq",   { XM, EXxmmqdh, EXxEVexS }, 0 },
    503  1.1.1.2  christos     { VEX_W_TABLE (EVEX_W_MAP5_7A_P_3) },
    504      1.1  christos   },
    505  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_7B */
    506      1.1  christos   {
    507      1.1  christos     { Bad_Opcode },
    508  1.1.1.3  christos     { "vcvtusi2shY{%LQ|}",       { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
    509  1.1.1.2  christos     { "vcvtp%XH2qq",    { XM, EXxmmqdh, EXxEVexR }, 0 },
    510      1.1  christos   },
    511  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_7C */
    512      1.1  christos   {
    513  1.1.1.2  christos     { "vcvttp%XH2uw",   { XM, EXxh, EXxEVexS }, 0 },
    514      1.1  christos     { Bad_Opcode },
    515  1.1.1.2  christos     { "vcvttp%XH2w",    { XM, EXxh, EXxEVexS }, 0 },
    516      1.1  christos   },
    517  1.1.1.2  christos   /* PREFIX_EVEX_MAP5_7D */
    518      1.1  christos   {
    519  1.1.1.2  christos     { "vcvtp%XH2uw",    { XM, EXxh, EXxEVexR }, 0 },
    520  1.1.1.2  christos     { "vcvtw2p%XH",     { XM, EXxh, EXxEVexR }, 0 },
    521  1.1.1.2  christos     { "vcvtp%XH2w",     { XM, EXxh, EXxEVexR }, 0 },
    522  1.1.1.2  christos     { "vcvtuw2p%XH",    { XM, EXxh, EXxEVexR }, 0 },
    523      1.1  christos   },
    524  1.1.1.2  christos   /* PREFIX_EVEX_MAP6_13 */
    525      1.1  christos   {
    526  1.1.1.2  christos     { "vcvts%XH2ss",	{ XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
    527      1.1  christos     { Bad_Opcode },
    528  1.1.1.2  christos     { "vcvtp%XH2psx",	{ XM, EXxmmqh, EXxEVexS }, 0 },
    529      1.1  christos   },
    530  1.1.1.2  christos   /* PREFIX_EVEX_MAP6_56 */
    531      1.1  christos   {
    532      1.1  christos     { Bad_Opcode },
    533  1.1.1.2  christos     { "vfmaddcp%XH",      { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
    534      1.1  christos     { Bad_Opcode },
    535  1.1.1.2  christos     { "vfcmaddcp%XH",     { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
    536      1.1  christos   },
    537  1.1.1.2  christos   /* PREFIX_EVEX_MAP6_57 */
    538      1.1  christos   {
    539      1.1  christos     { Bad_Opcode },
    540  1.1.1.2  christos     { "vfmaddcs%XH",      { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
    541      1.1  christos     { Bad_Opcode },
    542  1.1.1.2  christos     { "vfcmaddcs%XH",     { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
    543      1.1  christos   },
    544  1.1.1.2  christos   /* PREFIX_EVEX_MAP6_D6 */
    545      1.1  christos   {
    546      1.1  christos     { Bad_Opcode },
    547  1.1.1.2  christos     { "vfmulcp%XH",     { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
    548      1.1  christos     { Bad_Opcode },
    549  1.1.1.2  christos     { "vfcmulcp%XH",    { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
    550      1.1  christos   },
    551  1.1.1.2  christos   /* PREFIX_EVEX_MAP6_D7 */
    552      1.1  christos   {
    553      1.1  christos     { Bad_Opcode },
    554  1.1.1.2  christos     { "vfmulcs%XH",     { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
    555      1.1  christos     { Bad_Opcode },
    556  1.1.1.2  christos     { "vfcmulcs%XH",    { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
    557      1.1  christos   },
    558