Fixed some EVEX tuple-types

This commit is contained in:
flobernd 2017-06-19 20:46:42 +02:00
parent 4bceac86c9
commit ee97ae753c
2 changed files with 37 additions and 31 deletions

View File

@ -3975,45 +3975,45 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*00FC*/ { ZYDIS_MNEMONIC_VCVTQQ2PS, 3, 0x0E1C, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FV, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*00FD*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x15AC, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*00FE*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x15AC, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*00FF*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x128E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*00FF*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x128E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0100*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x1640, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0101*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x1640, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0102*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x1292, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0102*/ { ZYDIS_MNEMONIC_VCVTSD2SI, 2, 0x1292, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0103*/ { ZYDIS_MNEMONIC_VCVTSD2SS, 4, 0x0587, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0104*/ { ZYDIS_MNEMONIC_VCVTSD2SS, 4, 0x0587, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_ALLOWED },
/*0105*/ { ZYDIS_MNEMONIC_VCVTSD2SS, 4, 0x058B, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0106*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1642, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0107*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1642, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0108*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1644, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0108*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1644, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0109*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1646, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010A*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1646, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010B*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1648, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010B*/ { ZYDIS_MNEMONIC_VCVTSD2USI, 2, 0x1648, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010C*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0AE0, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010D*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0ADD, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010D*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0ADD, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010E*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0AE6, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*010F*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0AE6, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0110*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0AE3, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0110*/ { ZYDIS_MNEMONIC_VCVTSI2SD, 3, 0x0AE3, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0111*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AEC, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0112*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AEC, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0113*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AE9, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0113*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AE9, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0114*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AF2, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0115*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AF2, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0116*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AEF, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0116*/ { ZYDIS_MNEMONIC_VCVTSI2SS, 3, 0x0AEF, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0117*/ { ZYDIS_MNEMONIC_VCVTSS2SD, 4, 0x058F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0118*/ { ZYDIS_MNEMONIC_VCVTSS2SD, 4, 0x058F, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED },
/*0119*/ { ZYDIS_MNEMONIC_VCVTSS2SD, 4, 0x0593, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*011A*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x15B0, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011B*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x15B0, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011C*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x12AE, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011C*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x12AE, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011D*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x164A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011E*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x164A, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011F*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x12B2, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*011F*/ { ZYDIS_MNEMONIC_VCVTSS2SI, 2, 0x12B2, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0120*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x164C, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0121*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x164C, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0122*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x164E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0122*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x164E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0123*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x1650, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0124*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x1650, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0125*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x1652, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0125*/ { ZYDIS_MNEMONIC_VCVTSS2USI, 2, 0x1652, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0126*/ { ZYDIS_MNEMONIC_VCVTTPD2DQ, 3, 0x0D53, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0127*/ { ZYDIS_MNEMONIC_VCVTTPD2DQ, 3, 0x0D56, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FV, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*0128*/ { ZYDIS_MNEMONIC_VCVTTPD2DQ, 3, 0x0D59, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
@ -4072,28 +4072,28 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*015D*/ { ZYDIS_MNEMONIC_VCVTTPS2UQQ, 3, 0x0E0D, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_HV, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*015E*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x15AC, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*015F*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x15AC, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0160*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x128E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0160*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x128E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0161*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x1640, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0162*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x1640, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0163*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x1292, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0163*/ { ZYDIS_MNEMONIC_VCVTTSD2SI, 2, 0x1292, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0164*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1642, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0165*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1642, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0166*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1644, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0166*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1644, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0167*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1646, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0168*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1646, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0169*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1648, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0169*/ { ZYDIS_MNEMONIC_VCVTTSD2USI, 2, 0x1648, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016A*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x15B0, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016B*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x15B0, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016C*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x12AE, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016C*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x12AE, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016D*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x164A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016E*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x164A, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016F*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x12B2, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*016F*/ { ZYDIS_MNEMONIC_VCVTTSS2SI, 2, 0x12B2, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0170*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x164C, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0171*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x164C, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0172*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x164E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0172*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x164E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0173*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x1650, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0174*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x1650, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_SAE, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0175*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x1652, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0175*/ { ZYDIS_MNEMONIC_VCVTTSS2USI, 2, 0x1652, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1F, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0176*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x0E1F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0177*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x0E22, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_HV, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*0178*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x0E25, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
@ -4122,16 +4122,16 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*018F*/ { ZYDIS_MNEMONIC_VCVTUQQ2PS, 3, 0x0E19, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_512, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_ALLOWED },
/*0190*/ { ZYDIS_MNEMONIC_VCVTUQQ2PS, 3, 0x0E1C, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FV, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*0191*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E55, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0192*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E58, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0192*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E58, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0193*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E5B, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0194*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E5B, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0195*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E5E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0195*/ { ZYDIS_MNEMONIC_VCVTUSI2SD, 3, 0x0E5E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0196*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E61, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0197*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E61, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0198*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E64, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0198*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E64, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0199*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E67, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*019A*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E67, 0x00, ZYDIS_IVECTOR_LENGTH_FIXED_128, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_RC, ZYDIS_MASK_POLICY_FORBIDDEN },
/*019B*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E6A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*019B*/ { ZYDIS_MNEMONIC_VCVTUSI2SS, 3, 0x0E6A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*019C*/ { ZYDIS_MNEMONIC_VDBPSADBW, 5, 0x012A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*019D*/ { ZYDIS_MNEMONIC_VDBPSADBW, 5, 0x012F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FVM, ZYDIS_IELEMENT_SIZE_16, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*019E*/ { ZYDIS_MNEMONIC_VDBPSADBW, 5, 0x0134, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
@ -4713,7 +4713,7 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*03DE*/ { ZYDIS_MNEMONIC_VMOVAPS, 3, 0x0D2C, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*03DF*/ { ZYDIS_MNEMONIC_VMOVAPS, 3, 0x0D29, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FVM, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*03E0*/ { ZYDIS_MNEMONIC_VMOVD, 2, 0x165A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*03E1*/ { ZYDIS_MNEMONIC_VMOVD, 2, 0x15D8, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*03E1*/ { ZYDIS_MNEMONIC_VMOVD, 2, 0x15D8, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*03E2*/ { ZYDIS_MNEMONIC_VMOVD, 2, 0x0FC3, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*03E3*/ { ZYDIS_MNEMONIC_VMOVD, 2, 0x0FC6, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*03E4*/ { ZYDIS_MNEMONIC_VMOVDDUP, 3, 0x061F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
@ -4817,7 +4817,7 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*0446*/ { ZYDIS_MNEMONIC_VMOVNTPS, 2, 0x159A, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FVM, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0447*/ { ZYDIS_MNEMONIC_VMOVNTPS, 2, 0x1666, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FVM, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0448*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x1668, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0449*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x15E0, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0449*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x15E0, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*044A*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x0FC9, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*044B*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x0FCC, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*044C*/ { ZYDIS_MNEMONIC_VMOVQ, 2, 0x0A6E, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
@ -5394,13 +5394,13 @@ const ZydisInstructionDefinitionEVEX instructionDefinitionsEVEX[] =
/*0687*/ { ZYDIS_MNEMONIC_VPGATHERQQ, 3, 0x0FF3, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_GSCAT, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_REQUIRED },
/*0688*/ { ZYDIS_MNEMONIC_VPGATHERQQ, 3, 0x0FF6, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_GSCAT, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_REQUIRED },
/*0689*/ { ZYDIS_MNEMONIC_VPINSRB, 4, 0x054B, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068A*/ { ZYDIS_MNEMONIC_VPINSRB, 4, 0x0547, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_8, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068A*/ { ZYDIS_MNEMONIC_VPINSRB, 4, 0x0547, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_8, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068B*/ { ZYDIS_MNEMONIC_VPINSRD, 4, 0x0553, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068C*/ { ZYDIS_MNEMONIC_VPINSRD, 4, 0x054F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068C*/ { ZYDIS_MNEMONIC_VPINSRD, 4, 0x054F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068D*/ { ZYDIS_MNEMONIC_VPINSRQ, 4, 0x055B, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068E*/ { ZYDIS_MNEMONIC_VPINSRQ, 4, 0x0557, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068E*/ { ZYDIS_MNEMONIC_VPINSRQ, 4, 0x0557, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_64, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*068F*/ { ZYDIS_MNEMONIC_VPINSRW, 4, 0x0563, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0690*/ { ZYDIS_MNEMONIC_VPINSRW, 4, 0x055F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_16, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0690*/ { ZYDIS_MNEMONIC_VPINSRW, 4, 0x055F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_T1S, ZYDIS_IELEMENT_SIZE_16, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_FORBIDDEN },
/*0691*/ { ZYDIS_MNEMONIC_VPLZCNTD, 3, 0x0807, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0692*/ { ZYDIS_MNEMONIC_VPLZCNTD, 3, 0x080B, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_FV, ZYDIS_IELEMENT_SIZE_32, ZYDIS_EVEX_FUNC_BC, ZYDIS_MASK_POLICY_ALLOWED },
/*0693*/ { ZYDIS_MNEMONIC_VPLZCNTD, 3, 0x080F, 0x00, ZYDIS_IVECTOR_LENGTH_DEFAULT, ZYDIS_TUPLETYPE_INVALID, ZYDIS_IELEMENT_SIZE_INVALID, ZYDIS_EVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },

View File

@ -398,7 +398,7 @@ static ZydisStatus ZydisDecodeEVEX(ZydisDecoderContext* context, ZydisInstructio
info->details.evex.L = (data[3] >> 5) & 0x01;
info->details.evex.b = (data[3] >> 4) & 0x01;
info->details.evex.V2 = (data[3] >> 3) & 0x01;
info->details.evex.aaa = (data[3] >> 0) & 0x07;
info->details.evex.aaa = (data[3] >> 0) & 0x07;
// Update internal fields
context->cache.W = info->details.evex.W;
@ -411,6 +411,12 @@ static ZydisStatus ZydisDecodeEVEX(ZydisDecoderContext* context, ZydisInstructio
context->cache.v_vvvv =
((0x01 & ~info->details.evex.V2) << 4) | (0x0F & ~info->details.evex.vvvv);
if (!info->details.evex.b && (context->cache.LL == 3))
{
// LL = 3 is only valid for instructions with embedded rounding control
return ZYDIS_STATUS_MALFORMED_EVEX;
}
return ZYDIS_STATUS_SUCCESS;
}