{ PREFIX_TABLE (PREFIX_EVEX_0F384E) },
{ PREFIX_TABLE (PREFIX_EVEX_0F384F) },
/* 50 */
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3850) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3851) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3854) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
{ Bad_Opcode },
{ Bad_Opcode },
/* 58 */
/* 60 */
{ Bad_Opcode },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3862) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3863) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3864) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3865) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3866) },
{ Bad_Opcode },
{ Bad_Opcode },
/* 70 */
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3870) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3871) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3873) },
{ Bad_Opcode },
{ PREFIX_TABLE (PREFIX_EVEX_0F3875) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3876) },
{ Bad_Opcode },
{ PREFIX_TABLE (PREFIX_EVEX_0F388D) },
{ Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F388F) },
/* 90 */
{ PREFIX_TABLE (PREFIX_EVEX_0F3890) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3891) },
{ PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
{ PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
{ Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F38CF) },
/* D0 */
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F38DC) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F38DD) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F38DE) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F38DF) },
/* E0 */
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3A44) },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 70 */
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3A70) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3A71) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3A72) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3A73) },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3ACF) },
/* D0 */
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ "vrsqrt14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 },
},
+ /* PREFIX_EVEX_0F3850 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpdpbusd", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F3851 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpdpbusds", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F3852 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpdpwssd", { XM, Vex, EXx }, 0 },
+ { "vp4dpwssd", { XM, Vex, EXxmm }, 0 },
+ },
+ /* PREFIX_EVEX_0F3853 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpdpwssds", { XM, Vex, EXx }, 0 },
+ { "vp4dpwssds", { XM, Vex, EXxmm }, 0 },
+ },
+ /* PREFIX_EVEX_0F3854 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3854_P_2) },
+ },
+ /* PREFIX_EVEX_0F3855 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3855_P_2) },
+ },
/* PREFIX_EVEX_0F3858 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ VEX_W_TABLE (EVEX_W_0F385B_P_2) },
},
+ /* PREFIX_EVEX_0F3862 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3862_P_2) },
+ },
+ /* PREFIX_EVEX_0F3863 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3863_P_2) },
+ },
/* PREFIX_EVEX_0F3864 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ VEX_W_TABLE (EVEX_W_0F3866_P_2) },
},
+ /* PREFIX_EVEX_0F3870 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3870_P_2) },
+ },
+ /* PREFIX_EVEX_0F3871 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3871_P_2) },
+ },
+ /* PREFIX_EVEX_0F3872 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
+ },
+ /* PREFIX_EVEX_0F3873 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3873_P_2) },
+ },
/* PREFIX_EVEX_0F3875 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ VEX_W_TABLE (EVEX_W_0F388D_P_2) },
},
+ /* PREFIX_EVEX_0F388F */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpshufbitqmb", { XMask, Vex, EXx }, 0 },
+ },
/* PREFIX_EVEX_0F3890 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ "vrsqrt28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
},
+ /* PREFIX_EVEX_0F38CF */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vgf2p8mulb", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F38DC */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vaesenc", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F38DD */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vaesenclast", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F38DE */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vaesdec", { XM, Vex, EXx }, 0 },
+ },
+ /* PREFIX_EVEX_0F38DF */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vaesdeclast", { XM, Vex, EXx }, 0 },
+ },
/* PREFIX_EVEX_0F3A00 */
{
{ Bad_Opcode },
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vpextrw", { EdqwS, XM, Ib }, 0 },
+ { "vpextrw", { Edqw, XM, Ib }, 0 },
},
/* PREFIX_EVEX_0F3A16 */
{
{ Bad_Opcode },
{ VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
},
+ /* PREFIX_EVEX_0F3A44 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { "vpclmulqdq", { XM, Vex, EXx, Ib }, 0 },
+ },
/* PREFIX_EVEX_0F3A50 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ VEX_W_TABLE (EVEX_W_0F3A67_P_2) },
},
+ /* PREFIX_EVEX_0F3A70 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3A70_P_2) },
+ },
+ /* PREFIX_EVEX_0F3A71 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3A71_P_2) },
+ },
+ /* PREFIX_EVEX_0F3A72 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3A72_P_2) },
+ },
+ /* PREFIX_EVEX_0F3A73 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3A73_P_2) },
+ },
+ /* PREFIX_EVEX_0F3ACE */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3ACE_P_2) },
+ },
+ /* PREFIX_EVEX_0F3ACF */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3ACF_P_2) },
+ },
#endif /* NEED_PREFIX_TABLE */
#ifdef NEED_VEX_W_TABLE
},
/* EVEX_W_0F2A_P_1 */
{
- { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
- { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
+ { "vcvtsi2ss%LQ", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
+ { "vcvtsi2ss%LQ", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
},
/* EVEX_W_0F2A_P_3 */
{
- { "vcvtsi2sd", { XMScalar, VexScalar, Ed }, 0 },
- { "vcvtsi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
+ { "vcvtsi2sd%LQ", { XMScalar, VexScalar, Ed }, 0 },
+ { "vcvtsi2sd%LQ", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
},
/* EVEX_W_0F2B_P_0 */
{
},
/* EVEX_W_0F7B_P_1 */
{
- { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
- { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
+ { "vcvtusi2ss%LQ", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
+ { "vcvtusi2ss%LQ", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
},
/* EVEX_W_0F7B_P_2 */
{
},
/* EVEX_W_0F7B_P_3 */
{
- { "vcvtusi2sd", { XMScalar, VexScalar, Ed }, 0 },
- { "vcvtusi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
+ { "vcvtusi2sd%LQ", { XMScalar, VexScalar, Ed }, 0 },
+ { "vcvtusi2sd%LQ", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
},
/* EVEX_W_0F7E_P_1 */
{
{ "vpmulld", { XM, Vex, EXx }, 0 },
{ "vpmullq", { XM, Vex, EXx }, 0 },
},
+ /* EVEX_W_0F3854_P_2 */
+ {
+ { "vpopcntb", { XM, EXx }, 0 },
+ { "vpopcntw", { XM, EXx }, 0 },
+ },
+ /* EVEX_W_0F3855_P_2 */
+ {
+ { "vpopcntd", { XM, EXx }, 0 },
+ { "vpopcntq", { XM, EXx }, 0 },
+ },
/* EVEX_W_0F3858_P_2 */
{
{ "vpbroadcastd", { XM, EXxmm_md }, 0 },
{ "vbroadcasti32x8", { XM, EXxmmq }, 0 },
{ "vbroadcasti64x4", { XM, EXymm }, 0 },
},
+ /* EVEX_W_0F3862_P_2 */
+ {
+ { "vpexpandb", { XM, EXbScalar }, 0 },
+ { "vpexpandw", { XM, EXwScalar }, 0 },
+ },
+ /* EVEX_W_0F3863_P_2 */
+ {
+ { "vpcompressb", { EXbScalar, XM }, 0 },
+ { "vpcompressw", { EXwScalar, XM }, 0 },
+ },
/* EVEX_W_0F3866_P_2 */
{
{ "vpblendmb", { XM, Vex, EXx }, 0 },
{ "vpblendmw", { XM, Vex, EXx }, 0 },
},
+ /* EVEX_W_0F3870_P_2 */
+ {
+ { Bad_Opcode },
+ { "vpshldvw", { XM, Vex, EXx }, 0 },
+ },
+ /* EVEX_W_0F3871_P_2 */
+ {
+ { "vpshldvd", { XM, Vex, EXx }, 0 },
+ { "vpshldvq", { XM, Vex, EXx }, 0 },
+ },
+ /* EVEX_W_0F3872_P_2 */
+ {
+ { Bad_Opcode },
+ { "vpshrdvw", { XM, Vex, EXx }, 0 },
+ },
+ /* EVEX_W_0F3873_P_2 */
+ {
+ { "vpshrdvd", { XM, Vex, EXx }, 0 },
+ { "vpshrdvq", { XM, Vex, EXx }, 0 },
+ },
/* EVEX_W_0F3875_P_2 */
{
{ "vpermi2b", { XM, Vex, EXx }, 0 },
},
/* EVEX_W_0F3A3E_P_2 */
{
- { "vpcmpub", { XMask, Vex, EXx, Ib }, 0 },
- { "vpcmpuw", { XMask, Vex, EXx, Ib }, 0 },
+ { "vpcmpub", { XMask, Vex, EXx, VPCMP }, 0 },
+ { "vpcmpuw", { XMask, Vex, EXx, VPCMP }, 0 },
},
/* EVEX_W_0F3A3F_P_2 */
{
- { "vpcmpb", { XMask, Vex, EXx, Ib }, 0 },
- { "vpcmpw", { XMask, Vex, EXx, Ib }, 0 },
+ { "vpcmpb", { XMask, Vex, EXx, VPCMP }, 0 },
+ { "vpcmpw", { XMask, Vex, EXx, VPCMP }, 0 },
},
/* EVEX_W_0F3A42_P_2 */
{
{ "vfpclassss", { XMask, EXxmm_md, Ib }, 0 },
{ "vfpclasssd", { XMask, EXxmm_mq, Ib }, 0 },
},
+ /* EVEX_W_0F3A70_P_2 */
+ {
+ { Bad_Opcode },
+ { "vpshldw", { XM, Vex, EXx, Ib }, 0 },
+ },
+ /* EVEX_W_0F3A71_P_2 */
+ {
+ { "vpshldd", { XM, Vex, EXx, Ib }, 0 },
+ { "vpshldq", { XM, Vex, EXx, Ib }, 0 },
+ },
+ /* EVEX_W_0F3A72_P_2 */
+ {
+ { Bad_Opcode },
+ { "vpshrdw", { XM, Vex, EXx, Ib }, 0 },
+ },
+ /* EVEX_W_0F3A73_P_2 */
+ {
+ { "vpshrdd", { XM, Vex, EXx, Ib }, 0 },
+ { "vpshrdq", { XM, Vex, EXx, Ib }, 0 },
+ },
+ /* EVEX_W_0F3ACE_P_2 */
+ {
+ { Bad_Opcode },
+ { "vgf2p8affineqb", { XM, Vex, EXx, Ib }, 0 },
+ },
+ /* EVEX_W_0F3ACF_P_2 */
+ {
+ { Bad_Opcode },
+ { "vgf2p8affineinvqb", { XM, Vex, EXx, Ib }, 0 },
+ },
#endif /* NEED_VEX_W_TABLE */
#ifdef NEED_MOD_TABLE
{
{ PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
},
#endif /* NEED_MOD_TABLE */
+