Minor bugfixes

This commit is contained in:
flobernd 2017-06-29 20:52:35 +02:00
parent d7c81e5104
commit aca1ad1414
3 changed files with 40 additions and 31 deletions

View File

@ -6583,7 +6583,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*0024*/ { ZYDIS_MNEMONIC_VCMPPS, 5, 0x03AF, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0025*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08C0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32_BCST, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0026*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0027*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0027*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0028*/ { ZYDIS_MNEMONIC_VCVTFXPNTDQ2PS, 4, 0x089C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0029*/ { ZYDIS_MNEMONIC_VCVTFXPNTDQ2PS, 4, 0x08A0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*002A*/ { ZYDIS_MNEMONIC_VCVTFXPNTDQ2PS, 4, 0x08A0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6610,7 +6610,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*003F*/ { ZYDIS_MNEMONIC_VCVTPS2PD, 3, 0x11CE, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0040*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08C0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32_BCST, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0041*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0042*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0042*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08C4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0043*/ { ZYDIS_MNEMONIC_VEXP223PS, 3, 0x08D4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_F_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0044*/ { ZYDIS_MNEMONIC_VEXP223PS, 3, 0x08D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0045*/ { ZYDIS_MNEMONIC_VEXP223PS, 3, 0x08D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6778,31 +6778,31 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*00E7*/ { ZYDIS_MNEMONIC_VPADCD, 4, 0x08D0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00E8*/ { ZYDIS_MNEMONIC_VPADDD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00E9*/ { ZYDIS_MNEMONIC_VPADDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EA*/ { ZYDIS_MNEMONIC_VPADDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EA*/ { ZYDIS_MNEMONIC_VPADDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EB*/ { ZYDIS_MNEMONIC_VPADDSETCD, 4, 0x08CC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EC*/ { ZYDIS_MNEMONIC_VPADDSETCD, 4, 0x08D0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00ED*/ { ZYDIS_MNEMONIC_VPADDSETCD, 4, 0x08D0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EE*/ { ZYDIS_MNEMONIC_VPADDSETSD, 4, 0x0898, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00EF*/ { ZYDIS_MNEMONIC_VPADDSETSD, 4, 0x0894, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F0*/ { ZYDIS_MNEMONIC_VPADDSETSD, 4, 0x0894, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F0*/ { ZYDIS_MNEMONIC_VPADDSETSD, 4, 0x0894, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F1*/ { ZYDIS_MNEMONIC_VPANDD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F2*/ { ZYDIS_MNEMONIC_VPANDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F3*/ { ZYDIS_MNEMONIC_VPANDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F3*/ { ZYDIS_MNEMONIC_VPANDD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F4*/ { ZYDIS_MNEMONIC_VPANDND, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F5*/ { ZYDIS_MNEMONIC_VPANDND, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F6*/ { ZYDIS_MNEMONIC_VPANDND, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F6*/ { ZYDIS_MNEMONIC_VPANDND, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F7*/ { ZYDIS_MNEMONIC_VPANDNQ, 4, 0x0888, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F8*/ { ZYDIS_MNEMONIC_VPANDNQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F9*/ { ZYDIS_MNEMONIC_VPANDNQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00F9*/ { ZYDIS_MNEMONIC_VPANDNQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FA*/ { ZYDIS_MNEMONIC_VPANDQ, 4, 0x0888, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FB*/ { ZYDIS_MNEMONIC_VPANDQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FC*/ { ZYDIS_MNEMONIC_VPANDQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FC*/ { ZYDIS_MNEMONIC_VPANDQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FD*/ { ZYDIS_MNEMONIC_VPBLENDMD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FE*/ { ZYDIS_MNEMONIC_VPBLENDMD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FF*/ { ZYDIS_MNEMONIC_VPBLENDMD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*00FF*/ { ZYDIS_MNEMONIC_VPBLENDMD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0100*/ { ZYDIS_MNEMONIC_VPBLENDMQ, 4, 0x0888, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0101*/ { ZYDIS_MNEMONIC_VPBLENDMQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0102*/ { ZYDIS_MNEMONIC_VPBLENDMQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0102*/ { ZYDIS_MNEMONIC_VPBLENDMQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0103*/ { ZYDIS_MNEMONIC_VPBROADCASTD, 3, 0x08A4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_UI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 },
/*0104*/ { ZYDIS_MNEMONIC_VPBROADCASTQ, 3, 0x11C8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_UF_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_1_TO_8 },
/*0105*/ { ZYDIS_MNEMONIC_VPCMPD, 5, 0x03B4, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6829,37 +6829,37 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*011A*/ { ZYDIS_MNEMONIC_VPGATHERDQ, 3, 0x11F5, 0x00, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_MVEX_FUNC_UI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 },
/*011B*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*011C*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*011D*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*011D*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*011E*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*011F*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0120*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0120*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0121*/ { ZYDIS_MNEMONIC_VPMAXSD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0122*/ { ZYDIS_MNEMONIC_VPMAXSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0123*/ { ZYDIS_MNEMONIC_VPMAXSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0123*/ { ZYDIS_MNEMONIC_VPMAXSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0124*/ { ZYDIS_MNEMONIC_VPMAXUD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0125*/ { ZYDIS_MNEMONIC_VPMAXUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0126*/ { ZYDIS_MNEMONIC_VPMAXUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0126*/ { ZYDIS_MNEMONIC_VPMAXUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0127*/ { ZYDIS_MNEMONIC_VPMINSD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0128*/ { ZYDIS_MNEMONIC_VPMINSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0129*/ { ZYDIS_MNEMONIC_VPMINSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0129*/ { ZYDIS_MNEMONIC_VPMINSD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012A*/ { ZYDIS_MNEMONIC_VPMINUD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012B*/ { ZYDIS_MNEMONIC_VPMINUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012C*/ { ZYDIS_MNEMONIC_VPMINUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012C*/ { ZYDIS_MNEMONIC_VPMINUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012D*/ { ZYDIS_MNEMONIC_VPMULHD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012E*/ { ZYDIS_MNEMONIC_VPMULHD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012F*/ { ZYDIS_MNEMONIC_VPMULHD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*012F*/ { ZYDIS_MNEMONIC_VPMULHD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0130*/ { ZYDIS_MNEMONIC_VPMULHUD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0131*/ { ZYDIS_MNEMONIC_VPMULHUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0132*/ { ZYDIS_MNEMONIC_VPMULHUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0132*/ { ZYDIS_MNEMONIC_VPMULHUD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0133*/ { ZYDIS_MNEMONIC_VPMULLD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0134*/ { ZYDIS_MNEMONIC_VPMULLD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0135*/ { ZYDIS_MNEMONIC_VPMULLD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0135*/ { ZYDIS_MNEMONIC_VPMULLD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0136*/ { ZYDIS_MNEMONIC_VPORD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0137*/ { ZYDIS_MNEMONIC_VPORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0138*/ { ZYDIS_MNEMONIC_VPORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0138*/ { ZYDIS_MNEMONIC_VPORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0139*/ { ZYDIS_MNEMONIC_VPORQ, 4, 0x0888, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013A*/ { ZYDIS_MNEMONIC_VPORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013B*/ { ZYDIS_MNEMONIC_VPORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013B*/ { ZYDIS_MNEMONIC_VPORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013C*/ { ZYDIS_MNEMONIC_VPREFETCH0, 1, 0x16E6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_F_64, ZYDIS_MASK_POLICY_INVALID, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013D*/ { ZYDIS_MNEMONIC_VPREFETCH1, 1, 0x16E6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_F_64, ZYDIS_MASK_POLICY_INVALID, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*013E*/ { ZYDIS_MNEMONIC_VPREFETCH2, 1, 0x16E6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_F_64, ZYDIS_MASK_POLICY_INVALID, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6883,26 +6883,26 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*0150*/ { ZYDIS_MNEMONIC_VPSLLD, 4, 0x08DC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0151*/ { ZYDIS_MNEMONIC_VPSLLD, 4, 0x08E0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0152*/ { ZYDIS_MNEMONIC_VPSLLVD, 4, 0x08E4, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0153*/ { ZYDIS_MNEMONIC_VPSLLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0153*/ { ZYDIS_MNEMONIC_VPSLLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0154*/ { ZYDIS_MNEMONIC_VPSLLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0155*/ { ZYDIS_MNEMONIC_VPSRAD, 4, 0x08DC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0156*/ { ZYDIS_MNEMONIC_VPSRAD, 4, 0x08DC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0157*/ { ZYDIS_MNEMONIC_VPSRAD, 4, 0x08E0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0158*/ { ZYDIS_MNEMONIC_VPSRAVD, 4, 0x08E4, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0159*/ { ZYDIS_MNEMONIC_VPSRAVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0159*/ { ZYDIS_MNEMONIC_VPSRAVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015A*/ { ZYDIS_MNEMONIC_VPSRAVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015B*/ { ZYDIS_MNEMONIC_VPSRLD, 4, 0x08DC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015C*/ { ZYDIS_MNEMONIC_VPSRLD, 4, 0x08DC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015D*/ { ZYDIS_MNEMONIC_VPSRLD, 4, 0x08E0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015E*/ { ZYDIS_MNEMONIC_VPSRLVD, 4, 0x08E4, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015F*/ { ZYDIS_MNEMONIC_VPSRLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*015F*/ { ZYDIS_MNEMONIC_VPSRLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0160*/ { ZYDIS_MNEMONIC_VPSRLVD, 4, 0x08E8, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0161*/ { ZYDIS_MNEMONIC_VPSUBD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0162*/ { ZYDIS_MNEMONIC_VPSUBD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0163*/ { ZYDIS_MNEMONIC_VPSUBD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0163*/ { ZYDIS_MNEMONIC_VPSUBD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0164*/ { ZYDIS_MNEMONIC_VPSUBRD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0165*/ { ZYDIS_MNEMONIC_VPSUBRD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0166*/ { ZYDIS_MNEMONIC_VPSUBRD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0166*/ { ZYDIS_MNEMONIC_VPSUBRD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0167*/ { ZYDIS_MNEMONIC_VPSUBRSETBD, 4, 0x08CC, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0168*/ { ZYDIS_MNEMONIC_VPSUBRSETBD, 4, 0x08D0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0169*/ { ZYDIS_MNEMONIC_VPSUBRSETBD, 4, 0x08D0, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6914,10 +6914,10 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*016F*/ { ZYDIS_MNEMONIC_VPTESTMD, 4, 0x03B9, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0170*/ { ZYDIS_MNEMONIC_VPXORD, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0171*/ { ZYDIS_MNEMONIC_VPXORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0172*/ { ZYDIS_MNEMONIC_VPXORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0172*/ { ZYDIS_MNEMONIC_VPXORD, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0173*/ { ZYDIS_MNEMONIC_VPXORQ, 4, 0x0888, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0174*/ { ZYDIS_MNEMONIC_VPXORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0175*/ { ZYDIS_MNEMONIC_VPXORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0175*/ { ZYDIS_MNEMONIC_VPXORQ, 4, 0x088C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0176*/ { ZYDIS_MNEMONIC_VRCP23PS, 3, 0x08D4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_F_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0177*/ { ZYDIS_MNEMONIC_VRCP23PS, 3, 0x08D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0178*/ { ZYDIS_MNEMONIC_VRCP23PS, 3, 0x08D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
@ -6932,7 +6932,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*0181*/ { ZYDIS_MNEMONIC_VRSQRT23PS, 3, 0x08D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0182*/ { ZYDIS_MNEMONIC_VSCALEPS, 4, 0x0890, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0183*/ { ZYDIS_MNEMONIC_VSCALEPS, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0184*/ { ZYDIS_MNEMONIC_VSCALEPS, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0184*/ { ZYDIS_MNEMONIC_VSCALEPS, 4, 0x039B, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_MVEX_FUNC_IGNORED, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },
/*0185*/ { ZYDIS_MNEMONIC_VSCATTERDPD, 3, 0x11FE, 0x00, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_MVEX_FUNC_DF_64, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 },
/*0186*/ { ZYDIS_MNEMONIC_VSCATTERDPS, 3, 0x1201, 0x00, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_MVEX_FUNC_DF_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_1_TO_16 },
/*0187*/ { ZYDIS_MNEMONIC_VSCATTERPF0DPS, 2, 0x11F8, 0x00, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_MVEX_FUNC_UF_32, ZYDIS_MASK_POLICY_ALLOWED, ZYDIS_FALSE, ZYDIS_MVEX_STATIC_BROADCAST_NONE },

View File

@ -442,6 +442,13 @@ typedef uint8_t ZydisMVEXFunctionality;
*/
enum ZydisMVEXFunctionalities
{
/**
* @brief @c The MVEX.SSS value is ignored.
*/
ZYDIS_MVEX_FUNC_IGNORED,
/**
* @brief @c MVEX.SSS must be 000b.
*/
ZYDIS_MVEX_FUNC_INVALID,
/**
* @brief @c MVEX.SSS controls embedded-rounding functionality.

View File

@ -4093,10 +4093,12 @@ static ZydisStatus ZydisDecodeInstruction(ZydisDecoderContext* context, ZydisIns
maskPolicy = def->maskPolicy;
// Check for invalid MVEX.SSS values
static const uint8_t lookup[25][8] =
static const uint8_t lookup[26][8] =
{
// ZYDIS_MVEX_FUNC_INVALID
// ZYDIS_MVEX_FUNC_IGNORED
{ 1, 1, 1, 1, 1, 1, 1, 1 },
// ZYDIS_MVEX_FUNC_INVALID
{ 1, 0, 0, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_RC
{ 1, 1, 1, 1, 1, 1, 1, 1 },
// ZYDIS_MVEX_FUNC_SAE