Home | History | Annotate | Line # | Download | only in opcodes
i386-dis-evex-w.h revision 1.1.1.3
      1   /* EVEX_W_0F5B_P_0 */
      2   {
      3     { "%XEvcvtdq2ps",	{ XM, EXx, EXxEVexR }, 0 },
      4     { "vcvtqq2ps%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
      5   },
      6   /* EVEX_W_0F62 */
      7   {
      8     { "%XEvpunpckldq",	{ XM, Vex, EXx }, PREFIX_DATA },
      9   },
     10   /* EVEX_W_0F66 */
     11   {
     12     { "vpcmpgtd",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     13   },
     14   /* EVEX_W_0F6A */
     15   {
     16     { "%XEvpunpckhdq",	{ XM, Vex, EXx }, PREFIX_DATA },
     17   },
     18   /* EVEX_W_0F6B */
     19   {
     20     { "%XEvpackssdw",	{ XM, Vex, EXx }, PREFIX_DATA },
     21   },
     22   /* EVEX_W_0F6C */
     23   {
     24     { Bad_Opcode },
     25     { "%XEvpunpcklqdq",	{ XM, Vex, EXx }, PREFIX_DATA },
     26   },
     27   /* EVEX_W_0F6D */
     28   {
     29     { Bad_Opcode },
     30     { "%XEvpunpckhqdq",	{ XM, Vex, EXx }, PREFIX_DATA },
     31   },
     32   /* EVEX_W_0F6F_P_1 */
     33   {
     34     { "vmovdqu32",	{ XM, EXEvexXNoBcst }, 0 },
     35     { "vmovdqu64",	{ XM, EXEvexXNoBcst }, 0 },
     36   },
     37   /* EVEX_W_0F6F_P_2 */
     38   {
     39     { "vmovdqa32",	{ XM, EXEvexXNoBcst }, 0 },
     40     { "vmovdqa64",	{ XM, EXEvexXNoBcst }, 0 },
     41   },
     42   /* EVEX_W_0F6F_P_3 */
     43   {
     44     { "vmovdqu8",	{ XM, EXx }, 0 },
     45     { "vmovdqu16",	{ XM, EXx }, 0 },
     46   },
     47   /* EVEX_W_0F70_P_2 */
     48   {
     49     { "%XEvpshufd",	{ XM, EXx, Ib }, 0 },
     50   },
     51   /* EVEX_W_0F72_R_2 */
     52   {
     53     { "%XEvpsrld",	{ Vex, EXx, Ib }, PREFIX_DATA },
     54   },
     55   /* EVEX_W_0F72_R_6 */
     56   {
     57     { "%XEvpslld",	{ Vex, EXx, Ib }, PREFIX_DATA },
     58   },
     59   /* EVEX_W_0F73_R_2 */
     60   {
     61     { Bad_Opcode },
     62     { "%XEvpsrlq",	{ Vex, EXx, Ib }, PREFIX_DATA },
     63   },
     64   /* EVEX_W_0F73_R_6 */
     65   {
     66     { Bad_Opcode },
     67     { "%XEvpsllq",	{ Vex, EXx, Ib }, PREFIX_DATA },
     68   },
     69   /* EVEX_W_0F76 */
     70   {
     71     { "vpcmpeqd",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     72   },
     73   /* EVEX_W_0F78_P_0 */
     74   {
     75     { "vcvttps2udq",	{ XM, EXx, EXxEVexS }, 0 },
     76     { "vcvttpd2udq%XY",	{ XMxmmq, EXx, EXxEVexS }, 0 },
     77   },
     78   /* EVEX_W_0F78_P_2 */
     79   {
     80     { "vcvttps2uqq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
     81     { "vcvttpd2uqq",	{ XM, EXx, EXxEVexS }, 0 },
     82   },
     83   /* EVEX_W_0F79_P_0 */
     84   {
     85     { "vcvtps2udq",	{ XM, EXx, EXxEVexR }, 0 },
     86     { "vcvtpd2udq%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
     87   },
     88   /* EVEX_W_0F79_P_2 */
     89   {
     90     { "vcvtps2uqq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
     91     { "vcvtpd2uqq",	{ XM, EXx, EXxEVexR }, 0 },
     92   },
     93   /* EVEX_W_0F7A_P_1 */
     94   {
     95     { "vcvtudq2pd",	{ XM, EXEvexHalfBcstXmmq }, 0 },
     96     { "vcvtuqq2pd",	{ XM, EXx, EXxEVexR }, 0 },
     97   },
     98   /* EVEX_W_0F7A_P_2 */
     99   {
    100     { "vcvttps2qq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
    101     { "vcvttpd2qq",	{ XM, EXx, EXxEVexS }, 0 },
    102   },
    103   /* EVEX_W_0F7A_P_3 */
    104   {
    105     { "vcvtudq2ps",	{ XM, EXx, EXxEVexR }, 0 },
    106     { "vcvtuqq2ps%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
    107   },
    108   /* EVEX_W_0F7B_P_2 */
    109   {
    110     { "vcvtps2qq",	{ XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
    111     { "vcvtpd2qq",	{ XM, EXx, EXxEVexR }, 0 },
    112   },
    113   /* EVEX_W_0F7E_P_1 */
    114   {
    115     { Bad_Opcode },
    116     { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1) },
    117   },
    118   /* EVEX_W_0F7F_P_1 */
    119   {
    120     { "vmovdqu32",	{ EXxS, XM }, 0 },
    121     { "vmovdqu64",	{ EXxS, XM }, 0 },
    122   },
    123   /* EVEX_W_0F7F_P_2 */
    124   {
    125     { "vmovdqa32",	{ EXxS, XM }, 0 },
    126     { "vmovdqa64",	{ EXxS, XM }, 0 },
    127   },
    128   /* EVEX_W_0F7F_P_3 */
    129   {
    130     { "vmovdqu8",	{ EXxS, XM }, 0 },
    131     { "vmovdqu16",	{ EXxS, XM }, 0 },
    132   },
    133   /* EVEX_W_0FD2 */
    134   {
    135     { "%XEvpsrld",	{ XM, Vex, EXxmm }, PREFIX_DATA },
    136   },
    137   /* EVEX_W_0FD3 */
    138   {
    139     { Bad_Opcode },
    140     { "%XEvpsrlq",	{ XM, Vex, EXxmm }, PREFIX_DATA },
    141   },
    142   /* EVEX_W_0FD4 */
    143   {
    144     { Bad_Opcode },
    145     { "%XEvpaddq",	{ XM, Vex, EXx }, PREFIX_DATA },
    146   },
    147   /* EVEX_W_0FD6 */
    148   {
    149     { Bad_Opcode },
    150     { VEX_LEN_TABLE (VEX_LEN_0FD6) },
    151   },
    152   /* EVEX_W_0FE6_P_1 */
    153   {
    154     { "%XEvcvtdq2pd",	{ XM, EXEvexHalfBcstXmmq }, 0 },
    155     { "vcvtqq2pd",	{ XM, EXx, EXxEVexR }, 0 },
    156   },
    157   /* EVEX_W_0FE7 */
    158   {
    159     { "%XEvmovntdq",	{ Mx, XM }, PREFIX_DATA },
    160   },
    161   /* EVEX_W_0FF2 */
    162   {
    163     { "%XEvpslld",		{ XM, Vex, EXxmm }, PREFIX_DATA },
    164   },
    165   /* EVEX_W_0FF3 */
    166   {
    167     { Bad_Opcode },
    168     { "%XEvpsllq",		{ XM, Vex, EXxmm }, PREFIX_DATA },
    169   },
    170   /* EVEX_W_0FF4 */
    171   {
    172     { Bad_Opcode },
    173     { "%XEvpmuludq",	{ XM, Vex, EXx }, PREFIX_DATA },
    174   },
    175   /* EVEX_W_0FFA */
    176   {
    177     { "%XEvpsubd",		{ XM, Vex, EXx }, PREFIX_DATA },
    178   },
    179   /* EVEX_W_0FFB */
    180   {
    181     { Bad_Opcode },
    182     { "%XEvpsubq",		{ XM, Vex, EXx }, PREFIX_DATA },
    183   },
    184   /* EVEX_W_0FFE */
    185   {
    186     { "%XEvpaddd",		{ XM, Vex, EXx }, PREFIX_DATA },
    187   },
    188   /* EVEX_W_0F3810_P_1 */
    189   {
    190     { "vpmovuswb",	{ EXxmmq, XM }, 0 },
    191   },
    192   /* EVEX_W_0F3810_P_2 */
    193   {
    194     { Bad_Opcode },
    195     { "vpsrlvw",	{ XM, Vex, EXx }, 0 },
    196   },
    197   /* EVEX_W_0F3811_P_1 */
    198   {
    199     { "vpmovusdb",	{ EXxmmqd, XM }, 0 },
    200   },
    201   /* EVEX_W_0F3811_P_2 */
    202   {
    203     { Bad_Opcode },
    204     { "vpsravw",	{ XM, Vex, EXx }, 0 },
    205   },
    206   /* EVEX_W_0F3812_P_1 */
    207   {
    208     { "vpmovusqb",	{ EXxmmdw, XM }, 0 },
    209   },
    210   /* EVEX_W_0F3812_P_2 */
    211   {
    212     { Bad_Opcode },
    213     { "vpsllvw",	{ XM, Vex, EXx }, 0 },
    214   },
    215   /* EVEX_W_0F3813_P_1 */
    216   {
    217     { "vpmovusdw",	{ EXxmmq, XM }, 0 },
    218   },
    219   /* EVEX_W_0F3814_P_1 */
    220   {
    221     { "vpmovusqw",	{ EXxmmqd, XM }, 0 },
    222   },
    223   /* EVEX_W_0F3815_P_1 */
    224   {
    225     { "vpmovusqd",	{ EXxmmq, XM }, 0 },
    226   },
    227   /* EVEX_W_0F3819_L_n */
    228   {
    229     { "vbroadcastf32x2",	{ XM, EXq }, PREFIX_DATA },
    230     { "%XEvbroadcastsd",	{ XM, EXq }, PREFIX_DATA },
    231   },
    232   /* EVEX_W_0F381A_L_n */
    233   {
    234     { "vbroadcastf32x4",	{ XM, Mxmm }, PREFIX_DATA },
    235     { "vbroadcastf64x2",	{ XM, Mxmm }, PREFIX_DATA },
    236   },
    237   /* EVEX_W_0F381B_L_2 */
    238   {
    239     { "vbroadcastf32x8",	{ XM, Mymm }, PREFIX_DATA },
    240     { "vbroadcastf64x4",	{ XM, Mymm }, PREFIX_DATA },
    241   },
    242   /* EVEX_W_0F381E */
    243   {
    244     { "%XEvpabsd",	{ XM, EXx }, PREFIX_DATA },
    245   },
    246   /* EVEX_W_0F381F */
    247   {
    248     { Bad_Opcode },
    249     { "vpabsq",	{ XM, EXx }, PREFIX_DATA },
    250   },
    251   /* EVEX_W_0F3820_P_1 */
    252   {
    253     { "vpmovswb",	{ EXxmmq, XM }, 0 },
    254   },
    255   /* EVEX_W_0F3821_P_1 */
    256   {
    257     { "vpmovsdb",	{ EXxmmqd, XM }, 0 },
    258   },
    259   /* EVEX_W_0F3822_P_1 */
    260   {
    261     { "vpmovsqb",	{ EXxmmdw, XM }, 0 },
    262   },
    263   /* EVEX_W_0F3823_P_1 */
    264   {
    265     { "vpmovsdw",	{ EXxmmq, XM }, 0 },
    266   },
    267   /* EVEX_W_0F3824_P_1 */
    268   {
    269     { "vpmovsqw",	{ EXxmmqd, XM }, 0 },
    270   },
    271   /* EVEX_W_0F3825_P_1 */
    272   {
    273     { "vpmovsqd",	{ EXxmmq, XM }, 0 },
    274   },
    275   /* EVEX_W_0F3825_P_2 */
    276   {
    277     { "%XEvpmovsxdq",	{ XM, EXxmmq }, 0 },
    278   },
    279   /* EVEX_W_0F3828_P_2 */
    280   {
    281     { Bad_Opcode },
    282     { "%XEvpmuldq",	{ XM, Vex, EXx }, 0 },
    283   },
    284   /* EVEX_W_0F3829_P_2 */
    285   {
    286     { Bad_Opcode },
    287     { "vpcmpeqq",	{ MaskG, Vex, EXx }, 0 },
    288   },
    289   /* EVEX_W_0F382A_P_1 */
    290   {
    291     { Bad_Opcode },
    292     { "vpbroadcastmb2qY", { XM, MaskR }, 0 },
    293   },
    294   /* EVEX_W_0F382A_P_2 */
    295   {
    296     { "%XEvmovntdqaY",	{ XM, Mx }, 0 },
    297   },
    298   /* EVEX_W_0F382B */
    299   {
    300     { "%XEvpackusdw",	{ XM, Vex, EXx }, PREFIX_DATA },
    301   },
    302   /* EVEX_W_0F3830_P_1 */
    303   {
    304     { "vpmovwb",	{ EXxmmq, XM }, 0 },
    305   },
    306   /* EVEX_W_0F3831_P_1 */
    307   {
    308     { "vpmovdb",	{ EXxmmqd, XM }, 0 },
    309   },
    310   /* EVEX_W_0F3832_P_1 */
    311   {
    312     { "vpmovqb",	{ EXxmmdw, XM }, 0 },
    313   },
    314   /* EVEX_W_0F3833_P_1 */
    315   {
    316     { "vpmovdw",	{ EXxmmq, XM }, 0 },
    317   },
    318   /* EVEX_W_0F3834_P_1 */
    319   {
    320     { "vpmovqw",	{ EXxmmqd, XM }, 0 },
    321   },
    322   /* EVEX_W_0F3835_P_1 */
    323   {
    324     { "vpmovqd",	{ EXxmmq, XM }, 0 },
    325   },
    326   /* EVEX_W_0F3835_P_2 */
    327   {
    328     { "%XEvpmovzxdq",	{ XM, EXxmmq }, 0 },
    329   },
    330   /* EVEX_W_0F3837 */
    331   {
    332     { Bad_Opcode },
    333     { "vpcmpgtq",	{ MaskG, Vex, EXx }, PREFIX_DATA },
    334   },
    335   /* EVEX_W_0F383A_P_1 */
    336   {
    337     { "vpbroadcastmw2dY",	{ XM, MaskR }, 0 },
    338   },
    339   /* EVEX_W_0F3859 */
    340   {
    341     { "vbroadcasti32x2",	{ XM, EXq }, PREFIX_DATA },
    342     { "%XEvpbroadcastq",	{ XM, EXq }, PREFIX_DATA },
    343   },
    344   /* EVEX_W_0F385A_L_n */
    345   {
    346     { "vbroadcasti32x4",	{ XM, Mxmm }, PREFIX_DATA },
    347     { "vbroadcasti64x2",	{ XM, Mxmm }, PREFIX_DATA },
    348   },
    349   /* EVEX_W_0F385B_L_2 */
    350   {
    351     { "vbroadcasti32x8",	{ XM, Mymm }, PREFIX_DATA },
    352     { "vbroadcasti64x4",	{ XM, Mymm }, PREFIX_DATA },
    353   },
    354   /* EVEX_W_0F3870 */
    355   {
    356     { Bad_Opcode },
    357     { "vpshldvw",  { XM, Vex, EXx }, PREFIX_DATA },
    358   },
    359   /* EVEX_W_0F3872_P_2 */
    360   {
    361     { Bad_Opcode },
    362     { "vpshrdvw",  { XM, Vex, EXx }, 0 },
    363   },
    364   /* EVEX_W_0F387A */
    365   {
    366     { "vpbroadcastb",	{ XM, Rd }, PREFIX_DATA },
    367   },
    368   /* EVEX_W_0F387B */
    369   {
    370     { "vpbroadcastw",	{ XM, Rd }, PREFIX_DATA },
    371   },
    372   /* EVEX_W_0F3883 */
    373   {
    374     { Bad_Opcode },
    375     { "vpmultishiftqb",	{ XM, Vex, EXx }, PREFIX_DATA },
    376   },
    377   /* EVEX_W_0F3A18_L_n */
    378   {
    379     { "vinsertf32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
    380     { "vinsertf64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
    381   },
    382   /* EVEX_W_0F3A19_L_n */
    383   {
    384     { "vextractf32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
    385     { "vextractf64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
    386   },
    387   /* EVEX_W_0F3A1A_L_2 */
    388   {
    389     { "vinsertf32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
    390     { "vinsertf64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
    391   },
    392   /* EVEX_W_0F3A1B_L_2 */
    393   {
    394     { "vextractf32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
    395     { "vextractf64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
    396   },
    397   /* EVEX_W_0F3A21 */
    398   {
    399     { VEX_LEN_TABLE (VEX_LEN_0F3A21) },
    400   },
    401   /* EVEX_W_0F3A23_L_n */
    402   {
    403     { "vshuff32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    404     { "vshuff64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    405   },
    406   /* EVEX_W_0F3A38_L_n */
    407   {
    408     { "vinserti32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
    409     { "vinserti64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
    410   },
    411   /* EVEX_W_0F3A39_L_n */
    412   {
    413     { "vextracti32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
    414     { "vextracti64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
    415   },
    416   /* EVEX_W_0F3A3A_L_2 */
    417   {
    418     { "vinserti32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
    419     { "vinserti64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
    420   },
    421   /* EVEX_W_0F3A3B_L_2 */
    422   {
    423     { "vextracti32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
    424     { "vextracti64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
    425   },
    426   /* EVEX_W_0F3A42 */
    427   {
    428     { "vdbpsadbw",	{ XM, Vex, EXx, Ib }, 0 },
    429   },
    430   /* EVEX_W_0F3A43_L_n */
    431   {
    432     { "vshufi32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    433     { "vshufi64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
    434   },
    435   /* EVEX_W_0F3A70 */
    436   {
    437     { Bad_Opcode },
    438     { "vpshldw",   { XM, Vex, EXx, Ib }, 0 },
    439   },
    440   /* EVEX_W_0F3A72 */
    441   {
    442     { Bad_Opcode },
    443     { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
    444   },
    445   /* EVEX_W_MAP4_8F_R_0 */
    446   {
    447     { "pop2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX },
    448     { "pop2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX },
    449   },
    450   /* EVEX_W_MAP4_F8_P1_M_1 */
    451   {
    452     { "uwrmsr",		{ Gq, Eq }, 0 },
    453   },
    454   /* EVEX_W_MAP4_F8_P3_M_1 */
    455   {
    456     { "urdmsr",		{ Eq, Gq }, 0 },
    457   },
    458   /* EVEX_W_MAP4_FF_R_6 */
    459   {
    460     { "push2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
    461     { "push2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 },
    462   },
    463   /* EVEX_W_MAP5_5B_P_0 */
    464   {
    465     { "vcvtdq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
    466     { "vcvtqq2ph%XZ",	{ XMM, EXx, EXxEVexR }, 0 },
    467   },
    468   /* EVEX_W_MAP5_7A_P_3 */
    469   {
    470     { "vcvtudq2ph%XY",	{ XMxmmq, EXx, EXxEVexR }, 0 },
    471     { "vcvtuqq2ph%XZ",	{ XMM, EXx, EXxEVexR }, 0 },
    472   },
    473