- { Bad_Opcode },
- { Bad_Opcode },
- /* e8 */
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- /* f0 */
- { PREFIX_TABLE (PREFIX_VEX_0F3AF0) },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- /* f8 */
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- },
-};
-
-#define NEED_OPCODE_TABLE
-#include "i386-dis-evex.h"
-#undef NEED_OPCODE_TABLE
-static const struct dis386 vex_len_table[][2] = {
- /* VEX_LEN_0F10_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F10_P_1) },
- { VEX_W_TABLE (VEX_W_0F10_P_1) },
- },
-
- /* VEX_LEN_0F10_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F10_P_3) },
- { VEX_W_TABLE (VEX_W_0F10_P_3) },
- },
-
- /* VEX_LEN_0F11_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F11_P_1) },
- { VEX_W_TABLE (VEX_W_0F11_P_1) },
- },
-
- /* VEX_LEN_0F11_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F11_P_3) },
- { VEX_W_TABLE (VEX_W_0F11_P_3) },
- },
-
- /* VEX_LEN_0F12_P_0_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0F12_P_0_M_0) },
- },
-
- /* VEX_LEN_0F12_P_0_M_1 */
- {
- { VEX_W_TABLE (VEX_W_0F12_P_0_M_1) },
- },
-
- /* VEX_LEN_0F12_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F12_P_2) },
- },
-
- /* VEX_LEN_0F13_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0F13_M_0) },
- },
-
- /* VEX_LEN_0F16_P_0_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0F16_P_0_M_0) },
- },
-
- /* VEX_LEN_0F16_P_0_M_1 */
- {
- { VEX_W_TABLE (VEX_W_0F16_P_0_M_1) },
- },
-
- /* VEX_LEN_0F16_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F16_P_2) },
- },
-
- /* VEX_LEN_0F17_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0F17_M_0) },
- },
-
- /* VEX_LEN_0F2A_P_1 */
- {
- { "vcvtsi2ss%LQ", { XMScalar, VexScalar, Ev }, 0 },
- { "vcvtsi2ss%LQ", { XMScalar, VexScalar, Ev }, 0 },
- },
-
- /* VEX_LEN_0F2A_P_3 */
- {
- { "vcvtsi2sd%LQ", { XMScalar, VexScalar, Ev }, 0 },
- { "vcvtsi2sd%LQ", { XMScalar, VexScalar, Ev }, 0 },
- },
-
- /* VEX_LEN_0F2C_P_1 */
- {
- { "vcvttss2siY", { Gv, EXdScalar }, 0 },
- { "vcvttss2siY", { Gv, EXdScalar }, 0 },
- },
-
- /* VEX_LEN_0F2C_P_3 */
- {
- { "vcvttsd2siY", { Gv, EXqScalar }, 0 },
- { "vcvttsd2siY", { Gv, EXqScalar }, 0 },
- },
-
- /* VEX_LEN_0F2D_P_1 */
- {
- { "vcvtss2siY", { Gv, EXdScalar }, 0 },
- { "vcvtss2siY", { Gv, EXdScalar }, 0 },
- },
-
- /* VEX_LEN_0F2D_P_3 */
- {
- { "vcvtsd2siY", { Gv, EXqScalar }, 0 },
- { "vcvtsd2siY", { Gv, EXqScalar }, 0 },
- },
-
- /* VEX_LEN_0F2E_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F2E_P_0) },
- { VEX_W_TABLE (VEX_W_0F2E_P_0) },
- },
-
- /* VEX_LEN_0F2E_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F2E_P_2) },
- { VEX_W_TABLE (VEX_W_0F2E_P_2) },
- },
-
- /* VEX_LEN_0F2F_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F2F_P_0) },
- { VEX_W_TABLE (VEX_W_0F2F_P_0) },
- },
-
- /* VEX_LEN_0F2F_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F2F_P_2) },
- { VEX_W_TABLE (VEX_W_0F2F_P_2) },
- },
-
- /* VEX_LEN_0F41_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F41_P_0_LEN_1) },
- },
- /* VEX_LEN_0F41_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F41_P_2_LEN_1) },
- },
- /* VEX_LEN_0F42_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F42_P_0_LEN_1) },
- },
- /* VEX_LEN_0F42_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F42_P_2_LEN_1) },
- },
- /* VEX_LEN_0F44_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F44_P_0_LEN_0) },
- },
- /* VEX_LEN_0F44_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F44_P_2_LEN_0) },
- },
- /* VEX_LEN_0F45_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F45_P_0_LEN_1) },
- },
- /* VEX_LEN_0F45_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F45_P_2_LEN_1) },
- },
- /* VEX_LEN_0F46_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F46_P_0_LEN_1) },
- },
- /* VEX_LEN_0F46_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F46_P_2_LEN_1) },
- },
- /* VEX_LEN_0F47_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F47_P_0_LEN_1) },
- },
- /* VEX_LEN_0F47_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F47_P_2_LEN_1) },
- },
- /* VEX_LEN_0F4A_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F4A_P_0_LEN_1) },
- },
- /* VEX_LEN_0F4A_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F4A_P_2_LEN_1) },
- },
- /* VEX_LEN_0F4B_P_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F4B_P_0_LEN_1) },
- },
- /* VEX_LEN_0F4B_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F4B_P_2_LEN_1) },
- },
-
- /* VEX_LEN_0F51_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F51_P_1) },
- { VEX_W_TABLE (VEX_W_0F51_P_1) },
- },
-
- /* VEX_LEN_0F51_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F51_P_3) },
- { VEX_W_TABLE (VEX_W_0F51_P_3) },
- },
-
- /* VEX_LEN_0F52_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F52_P_1) },
- { VEX_W_TABLE (VEX_W_0F52_P_1) },
- },
-
- /* VEX_LEN_0F53_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F53_P_1) },
- { VEX_W_TABLE (VEX_W_0F53_P_1) },
- },
-
- /* VEX_LEN_0F58_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F58_P_1) },
- { VEX_W_TABLE (VEX_W_0F58_P_1) },
- },
-
- /* VEX_LEN_0F58_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F58_P_3) },
- { VEX_W_TABLE (VEX_W_0F58_P_3) },
- },
-
- /* VEX_LEN_0F59_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F59_P_1) },
- { VEX_W_TABLE (VEX_W_0F59_P_1) },
- },
-
- /* VEX_LEN_0F59_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F59_P_3) },
- { VEX_W_TABLE (VEX_W_0F59_P_3) },
- },
-
- /* VEX_LEN_0F5A_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F5A_P_1) },
- { VEX_W_TABLE (VEX_W_0F5A_P_1) },
- },
-
- /* VEX_LEN_0F5A_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F5A_P_3) },
- { VEX_W_TABLE (VEX_W_0F5A_P_3) },
- },
-
- /* VEX_LEN_0F5C_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F5C_P_1) },
- { VEX_W_TABLE (VEX_W_0F5C_P_1) },
- },
-
- /* VEX_LEN_0F5C_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F5C_P_3) },
- { VEX_W_TABLE (VEX_W_0F5C_P_3) },
- },
-
- /* VEX_LEN_0F5D_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F5D_P_1) },
- { VEX_W_TABLE (VEX_W_0F5D_P_1) },
- },
-
- /* VEX_LEN_0F5D_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F5D_P_3) },
- { VEX_W_TABLE (VEX_W_0F5D_P_3) },
- },
-
- /* VEX_LEN_0F5E_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F5E_P_1) },
- { VEX_W_TABLE (VEX_W_0F5E_P_1) },
- },
-
- /* VEX_LEN_0F5E_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F5E_P_3) },
- { VEX_W_TABLE (VEX_W_0F5E_P_3) },
- },
-
- /* VEX_LEN_0F5F_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F5F_P_1) },
- { VEX_W_TABLE (VEX_W_0F5F_P_1) },
- },
-
- /* VEX_LEN_0F5F_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F5F_P_3) },
- { VEX_W_TABLE (VEX_W_0F5F_P_3) },
- },
-
- /* VEX_LEN_0F6E_P_2 */
- {
- { "vmovK", { XMScalar, Edq }, 0 },
- { "vmovK", { XMScalar, Edq }, 0 },
- },
-
- /* VEX_LEN_0F7E_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0F7E_P_1) },
- { VEX_W_TABLE (VEX_W_0F7E_P_1) },
- },
-
- /* VEX_LEN_0F7E_P_2 */
- {
- { "vmovK", { Edq, XMScalar }, 0 },
- { "vmovK", { Edq, XMScalar }, 0 },
- },
-
- /* VEX_LEN_0F90_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F90_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F90_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F90_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F91_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F91_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F91_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F91_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F92_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F92_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F92_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F92_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F92_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F92_P_3_LEN_0) },
- },
-
- /* VEX_LEN_0F93_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F93_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F93_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F93_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F93_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0F93_P_3_LEN_0) },
- },
-
- /* VEX_LEN_0F98_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F98_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F98_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F98_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F99_P_0 */
- {
- { VEX_W_TABLE (VEX_W_0F99_P_0_LEN_0) },
- },
-
- /* VEX_LEN_0F99_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F99_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0FAE_R_2_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0FAE_R_2_M_0) },
- },
-
- /* VEX_LEN_0FAE_R_3_M_0 */
- {
- { VEX_W_TABLE (VEX_W_0FAE_R_3_M_0) },
- },
-
- /* VEX_LEN_0FC2_P_1 */
- {
- { VEX_W_TABLE (VEX_W_0FC2_P_1) },
- { VEX_W_TABLE (VEX_W_0FC2_P_1) },
- },
-
- /* VEX_LEN_0FC2_P_3 */
- {
- { VEX_W_TABLE (VEX_W_0FC2_P_3) },
- { VEX_W_TABLE (VEX_W_0FC2_P_3) },
- },
-
- /* VEX_LEN_0FC4_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0FC4_P_2) },
- },
-
- /* VEX_LEN_0FC5_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0FC5_P_2) },
- },
-
- /* VEX_LEN_0FD6_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0FD6_P_2) },
- { VEX_W_TABLE (VEX_W_0FD6_P_2) },
- },
-
- /* VEX_LEN_0FF7_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0FF7_P_2) },
- },
-
- /* VEX_LEN_0F3816_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3816_P_2) },
- },
-
- /* VEX_LEN_0F3819_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3819_P_2) },
- },
-
- /* VEX_LEN_0F381A_P_2_M_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F381A_P_2_M_0) },
- },
-
- /* VEX_LEN_0F3836_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3836_P_2) },
- },
-
- /* VEX_LEN_0F3841_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3841_P_2) },
- },
-
- /* VEX_LEN_0F385A_P_2_M_0 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F385A_P_2_M_0) },
- },
-
- /* VEX_LEN_0F38DB_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F38DB_P_2) },
- },
-
- /* VEX_LEN_0F38DC_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F38DC_P_2) },
- },
-
- /* VEX_LEN_0F38DD_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F38DD_P_2) },
- },
-
- /* VEX_LEN_0F38DE_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F38DE_P_2) },
- },
-
- /* VEX_LEN_0F38DF_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F38DF_P_2) },
- },
-
- /* VEX_LEN_0F38F2_P_0 */
- {
- { "andnS", { Gdq, VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F3_R_1_P_0 */
- {
- { "blsrS", { VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F3_R_2_P_0 */
- {
- { "blsmskS", { VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F3_R_3_P_0 */
- {
- { "blsiS", { VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F5_P_0 */
- {
- { "bzhiS", { Gdq, Edq, VexGdq }, 0 },
- },
-
- /* VEX_LEN_0F38F5_P_1 */
- {
- { "pextS", { Gdq, VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F5_P_3 */
- {
- { "pdepS", { Gdq, VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F6_P_3 */
- {
- { "mulxS", { Gdq, VexGdq, Edq }, 0 },
- },
-
- /* VEX_LEN_0F38F7_P_0 */
- {
- { "bextrS", { Gdq, Edq, VexGdq }, 0 },
- },
-
- /* VEX_LEN_0F38F7_P_1 */
- {
- { "sarxS", { Gdq, Edq, VexGdq }, 0 },
- },
-
- /* VEX_LEN_0F38F7_P_2 */
- {
- { "shlxS", { Gdq, Edq, VexGdq }, 0 },
- },
-
- /* VEX_LEN_0F38F7_P_3 */
- {
- { "shrxS", { Gdq, Edq, VexGdq }, 0 },
- },
-
- /* VEX_LEN_0F3A00_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A00_P_2) },
- },
-
- /* VEX_LEN_0F3A01_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A01_P_2) },
- },
-
- /* VEX_LEN_0F3A06_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A06_P_2) },
- },
-
- /* VEX_LEN_0F3A0A_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A0A_P_2) },
- { VEX_W_TABLE (VEX_W_0F3A0A_P_2) },
- },
-
- /* VEX_LEN_0F3A0B_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A0B_P_2) },
- { VEX_W_TABLE (VEX_W_0F3A0B_P_2) },
- },
-
- /* VEX_LEN_0F3A14_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A14_P_2) },
- },
-
- /* VEX_LEN_0F3A15_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A15_P_2) },
- },
-
- /* VEX_LEN_0F3A16_P_2 */
- {
- { "vpextrK", { Edq, XM, Ib }, 0 },
- },
-
- /* VEX_LEN_0F3A17_P_2 */
- {
- { "vextractps", { Edqd, XM, Ib }, 0 },
- },
-
- /* VEX_LEN_0F3A18_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A18_P_2) },
- },
-
- /* VEX_LEN_0F3A19_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A19_P_2) },
- },
-
- /* VEX_LEN_0F3A20_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A20_P_2) },
- },
-
- /* VEX_LEN_0F3A21_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A21_P_2) },
- },
-
- /* VEX_LEN_0F3A22_P_2 */
- {
- { "vpinsrK", { XM, Vex128, Edq, Ib }, 0 },
- },
-
- /* VEX_LEN_0F3A30_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A30_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F3A31_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A31_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F3A32_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A32_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F3A33_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A33_P_2_LEN_0) },
- },
-
- /* VEX_LEN_0F3A38_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A38_P_2) },
- },
-
- /* VEX_LEN_0F3A39_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A39_P_2) },
- },
-
- /* VEX_LEN_0F3A41_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A41_P_2) },
- },
-
- /* VEX_LEN_0F3A44_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A44_P_2) },
- },
-
- /* VEX_LEN_0F3A46_P_2 */
- {
- { Bad_Opcode },
- { VEX_W_TABLE (VEX_W_0F3A46_P_2) },
- },
-
- /* VEX_LEN_0F3A60_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A60_P_2) },
- },
-
- /* VEX_LEN_0F3A61_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A61_P_2) },
- },
-
- /* VEX_LEN_0F3A62_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A62_P_2) },
- },
-
- /* VEX_LEN_0F3A63_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3A63_P_2) },
- },
-
- /* VEX_LEN_0F3A6A_P_2 */
- {
- { "vfmaddss", { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A6B_P_2 */
- {
- { "vfmaddsd", { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A6E_P_2 */
- {
- { "vfmsubss", { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A6F_P_2 */
- {
- { "vfmsubsd", { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A7A_P_2 */
- {
- { "vfnmaddss", { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A7B_P_2 */
- {
- { "vfnmaddsd", { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A7E_P_2 */
- {
- { "vfnmsubss", { XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3A7F_P_2 */
- {
- { "vfnmsubsd", { XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
- },
-
- /* VEX_LEN_0F3ADF_P_2 */
- {
- { VEX_W_TABLE (VEX_W_0F3ADF_P_2) },
- },
-
- /* VEX_LEN_0F3AF0_P_3 */
- {
- { "rorxS", { Gdq, Edq, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_CC */
- {
- { "vpcomb", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_CD */
- {
- { "vpcomw", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_CE */
- {
- { "vpcomd", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_CF */
- {
- { "vpcomq", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_EC */
- {
- { "vpcomub", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_ED */
- {
- { "vpcomuw", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_EE */
- {
- { "vpcomud", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_08_EF */
- {
- { "vpcomuq", { XM, Vex128, EXx, Ib }, 0 },
- },
-
- /* VEX_LEN_0FXOP_09_80 */
- {
- { "vfrczps", { XM, EXxmm }, 0 },
- { "vfrczps", { XM, EXymmq }, 0 },
- },
-
- /* VEX_LEN_0FXOP_09_81 */
- {
- { "vfrczpd", { XM, EXxmm }, 0 },
- { "vfrczpd", { XM, EXymmq }, 0 },
- },
-};
-
-static const struct dis386 vex_w_table[][2] = {
- {
- /* VEX_W_0F10_P_0 */
- { "vmovups", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F10_P_1 */
- { "vmovss", { XMVexScalar, VexScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F10_P_2 */
- { "vmovupd", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F10_P_3 */
- { "vmovsd", { XMVexScalar, VexScalar, EXqScalar }, 0 },
- },
- {
- /* VEX_W_0F11_P_0 */
- { "vmovups", { EXxS, XM }, 0 },
- },
- {
- /* VEX_W_0F11_P_1 */
- { "vmovss", { EXdVexScalarS, VexScalar, XMScalar }, 0 },
- },
- {
- /* VEX_W_0F11_P_2 */
- { "vmovupd", { EXxS, XM }, 0 },
- },
- {
- /* VEX_W_0F11_P_3 */
- { "vmovsd", { EXqVexScalarS, VexScalar, XMScalar }, 0 },
- },
- {
- /* VEX_W_0F12_P_0_M_0 */
- { "vmovlps", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F12_P_0_M_1 */
- { "vmovhlps", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F12_P_1 */
- { "vmovsldup", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F12_P_2 */
- { "vmovlpd", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F12_P_3 */
- { "vmovddup", { XM, EXymmq }, 0 },
- },
- {
- /* VEX_W_0F13_M_0 */
- { "vmovlpX", { EXq, XM }, 0 },
- },
- {
- /* VEX_W_0F14 */
- { "vunpcklpX", { XM, Vex, EXx }, 0 },
- },
- {
- /* VEX_W_0F15 */
- { "vunpckhpX", { XM, Vex, EXx }, 0 },
- },
- {
- /* VEX_W_0F16_P_0_M_0 */
- { "vmovhps", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F16_P_0_M_1 */
- { "vmovlhps", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F16_P_1 */
- { "vmovshdup", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F16_P_2 */
- { "vmovhpd", { XM, Vex128, EXq }, 0 },
- },
- {
- /* VEX_W_0F17_M_0 */
- { "vmovhpX", { EXq, XM }, 0 },
- },
- {
- /* VEX_W_0F28 */
- { "vmovapX", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F29 */
- { "vmovapX", { EXxS, XM }, 0 },
- },
- {
- /* VEX_W_0F2B_M_0 */
- { "vmovntpX", { Mx, XM }, 0 },
- },
- {
- /* VEX_W_0F2E_P_0 */
- { "vucomiss", { XMScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F2E_P_2 */
- { "vucomisd", { XMScalar, EXqScalar }, 0 },
- },
- {
- /* VEX_W_0F2F_P_0 */
- { "vcomiss", { XMScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F2F_P_2 */
- { "vcomisd", { XMScalar, EXqScalar }, 0 },
- },
- {
- /* VEX_W_0F41_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F41_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F41_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F41_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F41_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F41_P_2_LEN_1) }
- },
- {
- /* VEX_W_0F42_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F42_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F42_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F42_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F42_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F42_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F44_P_0_LEN_0 */
- { MOD_TABLE (MOD_VEX_W_0_0F44_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F44_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F44_P_2_LEN_0 */
- { MOD_TABLE (MOD_VEX_W_0_0F44_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F44_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F45_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F45_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F45_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F45_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F45_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F45_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F46_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F46_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F46_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F46_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F46_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F46_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F47_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F47_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F47_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F47_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F47_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F47_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F4A_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F4A_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F4A_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F4A_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F4A_P_2_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F4A_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F4B_P_0_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F4B_P_0_LEN_1) },
- { MOD_TABLE (MOD_VEX_W_1_0F4B_P_0_LEN_1) },
- },
- {
- /* VEX_W_0F4B_P_2_LEN_1 */
- { MOD_TABLE (MOD_VEX_W_0_0F4B_P_2_LEN_1) },
- },
- {
- /* VEX_W_0F50_M_0 */
- { "vmovmskpX", { Gdq, XS }, 0 },
- },
- {
- /* VEX_W_0F51_P_0 */
- { "vsqrtps", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F51_P_1 */
- { "vsqrtss", { XMScalar, VexScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F51_P_2 */
- { "vsqrtpd", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F51_P_3 */
- { "vsqrtsd", { XMScalar, VexScalar, EXqScalar }, 0 },
- },
- {
- /* VEX_W_0F52_P_0 */
- { "vrsqrtps", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F52_P_1 */
- { "vrsqrtss", { XMScalar, VexScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F53_P_0 */
- { "vrcpps", { XM, EXx }, 0 },
- },
- {
- /* VEX_W_0F53_P_1 */
- { "vrcpss", { XMScalar, VexScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F58_P_0 */
- { "vaddps", { XM, Vex, EXx }, 0 },
- },
- {
- /* VEX_W_0F58_P_1 */
- { "vaddss", { XMScalar, VexScalar, EXdScalar }, 0 },
- },
- {
- /* VEX_W_0F58_P_2 */
- { "vaddpd", { XM, Vex, EXx }, 0 },
- },
- {
- /* VEX_W_0F58_P_3 */
- { "vaddsd", { XMScalar, VexScalar, EXqScalar }, 0 },
- },
- {
- /* VEX_W_0F59_P_0 */
- { "vmulps", { XM, Vex, EXx }, 0 },