From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7804) id 6479F3882126; Tue, 18 Jun 2024 02:57:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6479F3882126 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1718679456; bh=hBo6OJ81iZmjceueTqTySBdouu8l0K3Gerp4FnCwxas=; h=From:To:Subject:Date:From; b=MmwK04eu/bgBq2BGGDxp5/Vpp/LcuxK5KN2JDW/82iA7QpH+A+4ONufWGMz8uYmE0 CBn62kHQ6pYsWEVLIzT5V41SgWGzGHwUmIhHFS/JTHv4uMTNGSRpLYYud+5Ek9gS4Y ouM3OCTG7N68zyTkIQ11F/TR96aLp2No0AxNEHuw= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Lili Cui To: binutils-cvs@sourceware.org Subject: [binutils-gdb] Remove %ME and used %NE for movbe. X-Act-Checkin: binutils-gdb X-Git-Author: Cui, Lili X-Git-Refname: refs/heads/master X-Git-Oldrev: d8ba1c40371a664fe6fa3ed768dbf78289548359 X-Git-Newrev: f7b1fe8dc463d1cc0758d6c010a3082ff124e360 Message-Id: <20240618025736.6479F3882126@sourceware.org> Date: Tue, 18 Jun 2024 02:57:36 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Df7b1fe8dc463= d1cc0758d6c010a3082ff124e360 commit f7b1fe8dc463d1cc0758d6c010a3082ff124e360 Author: Cui, Lili Date: Tue Jun 18 10:46:31 2024 +0800 Remove %ME and used %NE for movbe. =20 %ME is added specifically for movbe. Now with %NE, we can use MOD table + %NE to indicate whether a {evex} prefix is needed. =20 opcodes/ChangeLog: =20 * i386-dis-evex-mod.h: Added movbe. * i386-dis-evex.h: Let movbe go through the mod table. * i386-dis.c (struct dis386): Removed %ME. (putop): Removed case ME. Diff: --- opcodes/i386-dis-evex-mod.h | 10 ++++++++++ opcodes/i386-dis-evex.h | 4 ++-- opcodes/i386-dis.c | 10 ++-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h index 879c91f3b76..bba32658ecf 100644 --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -1,3 +1,13 @@ + /* MOD_EVEX_MAP4_60 */ + { + { "movbeS", { Gv, Mv }, PREFIX_NP_OR_DATA }, + { "%NEmovbeS", { Gv, Ev }, PREFIX_NP_OR_DATA }, + }, + /* MOD_EVEX_MAP4_61 */ + { + { "movbeS", { Mv, Gv }, PREFIX_NP_OR_DATA }, + { "%NEmovbeS", { Ev, Gv }, PREFIX_NP_OR_DATA }, + }, /* MOD_EVEX_MAP4_F8_P1 */ { { "enqcmds", { Gva, M }, 0 }, diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 77c2ee772d1..0f63b5f701d 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -983,8 +983,8 @@ static const struct dis386 evex_table[][256] =3D { { Bad_Opcode }, { Bad_Opcode }, /* 60 */ - { "%MEmovbeS", { Gv, Ev }, PREFIX_NP_OR_DATA }, - { "%MEmovbeS", { Ev, Gv }, PREFIX_NP_OR_DATA }, + { MOD_TABLE (MOD_EVEX_MAP4_60) }, + { MOD_TABLE (MOD_EVEX_MAP4_61) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 86745a1b933..3a1afcc2fce 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -960,6 +960,8 @@ enum =20 MOD_VEX_0F3849_X86_64_L_0_W_0, =20 + MOD_EVEX_MAP4_60, + MOD_EVEX_MAP4_61, MOD_EVEX_MAP4_F8_P_1, MOD_EVEX_MAP4_F8_P_3, }; @@ -1800,9 +1802,6 @@ struct dis386 { "XV" =3D> print "{vex} " pseudo prefix "XE" =3D> print "{evex} " pseudo prefix if no EVEX-specific functionali= ty is is used by an EVEX-encoded (AVX512VL) instruction. - "ME" =3D> print "{evex} " pseudo prefix for ins->modrm.mod !=3D 3,if no - EVEX-specific functionality is used by an EVEX-encoded (AVX512VL) - instruction. "NF" =3D> print "{nf} " pseudo prefix when EVEX.NF =3D 1 and print "{ev= ex} " pseudo prefix when instructions without NF, EGPR and VVVV, "NE" =3D> don't print "{evex} " pseudo prefix for some special instruct= ions @@ -10527,11 +10526,6 @@ putop (instr_info *ins, const char *in_template, i= nt sizeflag) /* Skip printing {evex} for some special instructions in MAP4. */ evex_printed =3D true; break; - case 'M': - if (ins->modrm.mod !=3D 3 && !(ins->rex2 & 7)) - oappend (ins, "{evex} "); - evex_printed =3D true; - break; default: abort (); }