From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 4057D3959C75 for ; Tue, 9 Mar 2021 13:10:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4057D3959C75 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 55247AB8C; Tue, 9 Mar 2021 13:10:51 +0000 (UTC) Subject: [PATCH 6/9] x86: reuse VEX entries for EVEX vperm{q,pd} To: Binutils References: <59d65321-4135-a723-be53-2450c3759c35@suse.com> From: Jan Beulich Message-ID: <07151fde-4393-3e82-2234-ee5febb37b3b@suse.com> Date: Tue, 9 Mar 2021 14:10:50 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <59d65321-4135-a723-be53-2450c3759c35@suse.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3033.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Mar 2021 13:10:53 -0000 By matching VEX decode order (L before W), some EVEX entries can refer back to VEX ones instead of carrying duplicates. opcodes/ 2021-03-XX Jan Beulich * opcodes/i386-dis.c (EVEX_LEN_0F3A00_W_1, EVEX_LEN_0F3A01_W_1): Rename to EVEX_LEN_0F3A00 and EVEX_LEN_0F3A01 respectively. EVEX_W_0F3A00, EVEX_W_0F3A01): Delete. * i386-dis-evex.h (evex_table): Adjust opcode 0F3A00 and 0F3A01 entries. * i386-dis-evex-len.h (evex_len_table): Likewise. * i386-dis-evex-w.h: Remove opcode 0F3A00 and 0F3A01 entries. --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -92,18 +92,18 @@ static const struct dis386 evex_len_tabl { VEX_W_TABLE (EVEX_W_0F38C7_M_0_L_2) }, }, - /* EVEX_LEN_0F3A00_W_1 */ + /* EVEX_LEN_0F3A00 */ { { Bad_Opcode }, - { "vpermq", { XM, EXx, Ib }, PREFIX_DATA }, - { "vpermq", { XM, EXx, Ib }, PREFIX_DATA }, + { VEX_W_TABLE (VEX_W_0F3A00_L_1) }, + { VEX_W_TABLE (VEX_W_0F3A00_L_1) }, }, - /* EVEX_LEN_0F3A01_W_1 */ + /* EVEX_LEN_0F3A01 */ { { Bad_Opcode }, - { "vpermpd", { XM, EXx, Ib }, PREFIX_DATA }, - { "vpermpd", { XM, EXx, Ib }, PREFIX_DATA }, + { VEX_W_TABLE (VEX_W_0F3A01_L_1) }, + { VEX_W_TABLE (VEX_W_0F3A01_L_1) }, }, /* EVEX_LEN_0F3A14 */ --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -580,16 +580,6 @@ { REG_TABLE (REG_EVEX_0F38C7_M_0_L_2_W_0) }, { REG_TABLE (REG_EVEX_0F38C7_M_0_L_2_W_1) }, }, - /* EVEX_W_0F3A00 */ - { - { Bad_Opcode }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A00_W_1) }, - }, - /* EVEX_W_0F3A01 */ - { - { Bad_Opcode }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A01_W_1) }, - }, /* EVEX_W_0F3A05 */ { { Bad_Opcode }, --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -584,8 +584,8 @@ static const struct dis386 evex_table[][ /* EVEX_0F3A */ { /* 00 */ - { VEX_W_TABLE (EVEX_W_0F3A00) }, - { VEX_W_TABLE (EVEX_W_0F3A01) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F3A00) }, + { EVEX_LEN_TABLE (EVEX_LEN_0F3A01) }, { Bad_Opcode }, { "valign%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA }, { VEX_W_TABLE (VEX_W_0F3A04) }, --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1349,8 +1349,8 @@ enum EVEX_LEN_0F385B_M_0, EVEX_LEN_0F38C6_M_0, EVEX_LEN_0F38C7_M_0, - EVEX_LEN_0F3A00_W_1, - EVEX_LEN_0F3A01_W_1, + EVEX_LEN_0F3A00, + EVEX_LEN_0F3A01, EVEX_LEN_0F3A14, EVEX_LEN_0F3A15, EVEX_LEN_0F3A16, @@ -1614,8 +1614,6 @@ enum EVEX_W_0F38A3, EVEX_W_0F38C7_M_0_L_2, - EVEX_W_0F3A00, - EVEX_W_0F3A01, EVEX_W_0F3A05, EVEX_W_0F3A08, EVEX_W_0F3A09,