diff options
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 72 |
1 files changed, 7 insertions, 65 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 799d9d4a4d8..f6a0c51d2fb 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -930,7 +930,12 @@ enum MOD_VEX_W_1_0F3A33_P_2_LEN_0, MOD_EVEX_0F12_PREFIX_0, + MOD_EVEX_0F12_PREFIX_2, + MOD_EVEX_0F13, MOD_EVEX_0F16_PREFIX_0, + MOD_EVEX_0F16_PREFIX_2, + MOD_EVEX_0F17, + MOD_EVEX_0F2B, MOD_EVEX_0F38C6_REG_1, MOD_EVEX_0F38C6_REG_2, MOD_EVEX_0F38C6_REG_5, @@ -1415,24 +1420,13 @@ enum PREFIX_EVEX_0F10, PREFIX_EVEX_0F11, PREFIX_EVEX_0F12, - PREFIX_EVEX_0F13, - PREFIX_EVEX_0F14, - PREFIX_EVEX_0F15, PREFIX_EVEX_0F16, - PREFIX_EVEX_0F17, - PREFIX_EVEX_0F28, - PREFIX_EVEX_0F29, PREFIX_EVEX_0F2A, - PREFIX_EVEX_0F2B, PREFIX_EVEX_0F2C, PREFIX_EVEX_0F2D, PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F, PREFIX_EVEX_0F51, - PREFIX_EVEX_0F54, - PREFIX_EVEX_0F55, - PREFIX_EVEX_0F56, - PREFIX_EVEX_0F57, PREFIX_EVEX_0F58, PREFIX_EVEX_0F59, PREFIX_EVEX_0F5A, @@ -1482,7 +1476,6 @@ enum PREFIX_EVEX_0FC2, PREFIX_EVEX_0FC4, PREFIX_EVEX_0FC5, - PREFIX_EVEX_0FC6, PREFIX_EVEX_0FD1, PREFIX_EVEX_0FD2, PREFIX_EVEX_0FD3, @@ -2040,61 +2033,21 @@ enum VEX_W_0F3ACE_P_2, VEX_W_0F3ACF_P_2, - EVEX_W_0F10_P_0, EVEX_W_0F10_P_1, - EVEX_W_0F10_P_2, EVEX_W_0F10_P_3, - EVEX_W_0F11_P_0, EVEX_W_0F11_P_1, - EVEX_W_0F11_P_2, EVEX_W_0F11_P_3, - EVEX_W_0F12_P_0_M_0, EVEX_W_0F12_P_0_M_1, EVEX_W_0F12_P_1, - EVEX_W_0F12_P_2, EVEX_W_0F12_P_3, - EVEX_W_0F13_P_0, - EVEX_W_0F13_P_2, - EVEX_W_0F14_P_0, - EVEX_W_0F14_P_2, - EVEX_W_0F15_P_0, - EVEX_W_0F15_P_2, - EVEX_W_0F16_P_0_M_0, EVEX_W_0F16_P_0_M_1, EVEX_W_0F16_P_1, - EVEX_W_0F16_P_2, - EVEX_W_0F17_P_0, - EVEX_W_0F17_P_2, - EVEX_W_0F28_P_0, - EVEX_W_0F28_P_2, - EVEX_W_0F29_P_0, - EVEX_W_0F29_P_2, EVEX_W_0F2A_P_3, - EVEX_W_0F2B_P_0, - EVEX_W_0F2B_P_2, - EVEX_W_0F2E_P_0, - EVEX_W_0F2E_P_2, - EVEX_W_0F2F_P_0, - EVEX_W_0F2F_P_2, - EVEX_W_0F51_P_0, EVEX_W_0F51_P_1, - EVEX_W_0F51_P_2, EVEX_W_0F51_P_3, - EVEX_W_0F54_P_0, - EVEX_W_0F54_P_2, - EVEX_W_0F55_P_0, - EVEX_W_0F55_P_2, - EVEX_W_0F56_P_0, - EVEX_W_0F56_P_2, - EVEX_W_0F57_P_0, - EVEX_W_0F57_P_2, - EVEX_W_0F58_P_0, EVEX_W_0F58_P_1, - EVEX_W_0F58_P_2, EVEX_W_0F58_P_3, - EVEX_W_0F59_P_0, EVEX_W_0F59_P_1, - EVEX_W_0F59_P_2, EVEX_W_0F59_P_3, EVEX_W_0F5A_P_0, EVEX_W_0F5A_P_1, @@ -2103,21 +2056,13 @@ enum EVEX_W_0F5B_P_0, EVEX_W_0F5B_P_1, EVEX_W_0F5B_P_2, - EVEX_W_0F5C_P_0, EVEX_W_0F5C_P_1, - EVEX_W_0F5C_P_2, EVEX_W_0F5C_P_3, - EVEX_W_0F5D_P_0, EVEX_W_0F5D_P_1, - EVEX_W_0F5D_P_2, EVEX_W_0F5D_P_3, - EVEX_W_0F5E_P_0, EVEX_W_0F5E_P_1, - EVEX_W_0F5E_P_2, EVEX_W_0F5E_P_3, - EVEX_W_0F5F_P_0, EVEX_W_0F5F_P_1, - EVEX_W_0F5F_P_2, EVEX_W_0F5F_P_3, EVEX_W_0F62_P_2, EVEX_W_0F66_P_2, @@ -2147,12 +2092,8 @@ enum EVEX_W_0F7F_P_1, EVEX_W_0F7F_P_2, EVEX_W_0F7F_P_3, - EVEX_W_0FC2_P_0, EVEX_W_0FC2_P_1, - EVEX_W_0FC2_P_2, EVEX_W_0FC2_P_3, - EVEX_W_0FC6_P_0, - EVEX_W_0FC6_P_2, EVEX_W_0FD2_P_2, EVEX_W_0FD3_P_2, EVEX_W_0FD4_P_2, @@ -12278,7 +12219,8 @@ print_insn (bfd_vma pc, disassemble_info *info) : ((prefixes & (PREFIX_REPZ | PREFIX_REPNZ | PREFIX_DATA)) == PREFIX_DATA)) - && (used_prefixes & PREFIX_DATA) == 0)))) + && (used_prefixes & PREFIX_DATA) == 0)) + || (vex.evex && !vex.w != !(used_prefixes & PREFIX_DATA)))) { (*info->fprintf_func) (info->stream, "(bad)"); return end_codep - priv.the_buffer; |