x86: drop further EVEX table entries that can be served by VEX ones
[deliverable/binutils-gdb.git] / opcodes / ChangeLog
index 4ac10ce186dd02f08a79c4c7435f33d5b3cbdf88..7ade597ade4726bc35c08dcd0e9027433d4682d2 100644 (file)
@@ -1,3 +1,115 @@
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (PREFIX_EVEX_0F2C, PREFIX_EVEX_0F2D,
+       PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F): Delete.
+       (prefix_table): Add EXxEVexS operand to vcvttss2si, vcvttsd2si,
+       vcvtss2si, vcvtsd2si, vucomiss, and vucomisd table entries.
+       Retain X macro and PREFIX_OPCODE use from tjhe EVEX table for
+       the latter two.
+       * i386-dis-evex.h (evex_table): Reference VEX table for opcodes
+       0F2C, 0F2D, 0F2E, and 0F2F.
+       * i386-dis-evex-prefix.h: Delete opcode 0F2C, 0F2D, 0F2E, and
+       0F2F table entries.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (OP_VexR, VexScalarR): New.
+       (OP_EX_Vex, OP_XMM_Vex, EXdVexScalarS, EXqVexScalarS,
+       XMVexScalar, d_scalar_swap_mode, q_scalar_swap_mode,
+       need_vex_reg): Delete.
+       (prefix_table): Replace VexScalar by VexScalarR and
+       XMVexScalar by XMScalar for vmovss and vmovsd. Replace
+       EXdVexScalarS by EXdS and EXqVexScalarS by EXqS.
+       (vex_len_table): Replace EXqVexScalarS by EXqS.
+       (get_valid_dis386): Don't set need_vex_reg.
+       (print_insn): Don't initialize need_vex_reg.
+       (intel_operand_size, OP_E_memory): Drop d_scalar_swap_mode and
+       q_scalar_swap_mode cases.
+       (OP_EX): Don't check for d_scalar_swap_mode and
+       q_scalar_swap_mode.
+       (OP_VEX): Done check need_vex_reg.
+       * i386-dis-evex-w.h: Replace VexScalar by VexScalarR and
+       XMVexScalar by XMScalar for vmovss and vmovsd. Replace
+       EXdVexScalarS by EXdS and EXqVexScalarS by EXqS.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (Vex128, Vex256, vex128_mode, vex256_mode): Delete.
+       (VEX_W_0F381A_P_2_M_0, VEX_W_0F385A_P_2_M_0, VEX_W_0F3A06_P_2,
+       VEX_W_0F3A18_P_2, VEX_W_0F3A19_P_2, VEX_W_0F3A38_P_2,
+       VEX_W_0F3A39_P_2, VEX_W_0F3A46_P_2): Rename to ...
+       (VEX_W_0F381A_P_2_M_0_L_0, VEX_W_0F385A_P_2_M_0_L_0,
+       VEX_W_0F3A06_P_2_L_0, VEX_W_0F3A18_P_2_L_0,
+       VEX_W_0F3A19_P_2_L_0, VEX_W_0F3A38_P_2_L_0,
+       VEX_W_0F3A39_P_2_L_0, VEX_W_0F3A46_P_2_L_0): ... respectively.
+       (vex_table): Replace Vex128 by Vex.
+       (vex_len_table): Likewise. Adjust referenced enum names.
+       (vex_w_table): Replace Vex128 and Vex256 by Vex. Adjust
+       referenced enum names.
+       (OP_VEX): Drop vex128_mode and vex256_mode cases.
+       * i386-dis-evex-len.h (evex_len_table): Replace Vex128 by Vex.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (dis386): "LW" description now applies to "DQ".
+       (putop): Handle "DQ". Don't handle "LW" anymore.
+       (prefix_table, mod_table): Replace %LW by %DQ.
+       * i386-dis-evex-len.h, i386-dis-evex-prefix.h: Likewise.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (OP_E_memory): Move xmm_mw_mode, xmm_mb_mode,
+       dqd_mode, xmm_md_mode, d_mode, d_swap_mode, and
+       d_scalar_swap_mode case handling. Move shift adjsutment into
+       the case its applicable to.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (EVEX_W_0F3862_P_2, EVEX_W_0F3863_P_2): Delete.
+       (EXbScalar, EXwScalar): Fold to ...
+       (EXbwUnit): ... this.
+       (b_scalar_mode, w_scalar_mode): Fold to ...
+       (bw_unit_mode): ... this.
+       (intel_operand_size, OP_E_memory): Replace b_scalar_mode /
+       w_scalar_mode handling by bw_unit_mode one.
+       * i386-dis-evex-w.h: Move entries for opcodes 0F3862 and 0F3863
+       ...
+       * i386-dis-evex-prefix.h: ... here.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (PCMPESTR_Fixup): Delete.
+       (dis386): Adjust "LQ" description.
+       (prefix_table): Make %LQ apply to AT&T case only for cvtsi2ss,
+       cvtsi2sd, ptwrite, vcvtsi2ss, and vcvtsi2sd. Replace use of
+       PCMPESTR_Fixup by !%LQ and EXx for pcmpestrm, pcmpestri,
+       vpcmpestrm, and vpcmpestri.
+       (putop): Honor "cond" when handling LQ.
+       * i386-dis-evex-prefix.h: Make %LQ apply to AT&T case only for
+       vcvtsi2ss and vcvtusi2ss.
+       * i386-dis-evex-w.h: Make %LQ apply to AT&T case only for
+       vcvtsi2sd and vcvtusi2sd.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (VCMP_Fixup, VCMP): Delete.
+       (simd_cmp_op): Add const.
+       (vex_cmp_op): Move up and drop initial 8 entries. Add const.
+       (CMP_Fixup): Handle VEX case.
+       (prefix_table): Replace VCMP by CMP.
+       * i386-dis-evex-prefix.h, i386-dis-evex-w.h: Likewise.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (MOVBE_Fixup): Delete.
+       (Mv): Define.
+       (prefix_table): Use Mv for movbe entries.
+
+2020-07-14  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (CRC32_Fixup): Delete.
+       (prefix_table): Use Eb/Ev for crc32 entries.
+
 2020-07-14  Jan Beulich  <jbeulich@suse.com>
 
        * i386-dis.c (OP_E_register, OP_G, OP_REG, CRC32_Fixup):
This page took 0.024272 seconds and 4 git commands to generate.