From patchwork Tue Jul 4 15:21:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 115832 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1296631vqx; Tue, 4 Jul 2023 08:22:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlGGiLjwHHK3II3OYuIayC+I8GWoPAgfJ70oKrBsAjtWnTfzzFFVIZNaINq2VhrQvZXH+HMY X-Received: by 2002:a05:6512:3b85:b0:4fb:7447:e71a with SMTP id g5-20020a0565123b8500b004fb7447e71amr12276920lfv.63.1688484169443; Tue, 04 Jul 2023 08:22:49 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id k14-20020aa7c38e000000b0051e065c1573si3962754edq.612.2023.07.04.08.22.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 08:22:49 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="Owri/NGn"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 248603856DCE for ; Tue, 4 Jul 2023 15:22:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 248603856DCE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688484144; bh=n249pK8jGi4xFDrdpKhOxoKDCyhcIcQ2FzAQDs8VA4U=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Owri/NGnZnY3MTnTha7z04V1kHb/dalOMpHWvJfcGMKCNgyArJVMWnSBUE4IquwVx YksHmLomamNf+eEJp94QVmIF3T6tvqawQPt0uQvIsQ6b8zs/Ruv1SZfqs9uGZryjQy H6YnybXcFy1Dc1k0xQusOV/jG/PXx8uACFe/NtCw= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2058.outbound.protection.outlook.com [40.107.249.58]) by sourceware.org (Postfix) with ESMTPS id E22E23855593 for ; Tue, 4 Jul 2023 15:21:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E22E23855593 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KFf/jWVJJXEtm8iNOgLwAxPG5i4QlK1hvJW3SBO/OUVH/QqZt9hjZqjJormFroHB7Fbw5wdxYFRgXuJn4qoGLsHkcNJzUJfcfSpMvrRzJpbO3ZgEnAFSiKnNTNCKeS9RS9cPKX2E8sLshGl1NdtzGIoOQ81SH64hEGun68gxUCzxHYBy75NW61GlccEj5riuVeTcLq0IpPjk8lfR7ZaVkHP6Xejy9qPUKnJiTqP18Mkilk6q6TlIwT1aspNwUD8crJOxAvYcqoH6VrZJP+cRLFTcL/mQwWsPvBP2IR+rcGqhiiiWXy4lohKQ5Abw+Z2FL5OB+A7ANvKGAem45IQkrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n249pK8jGi4xFDrdpKhOxoKDCyhcIcQ2FzAQDs8VA4U=; b=Z4B0Z2r/KFcgjjwuaFKhDw/3o0OnYMJxy3KITWBFrPcBb+YiQvq2nfFE5jYbzeue6lo7I48+zU14kQO1wnAuOMkOjXBOjEwkHGgnzi7+Ya4MnZHhTx4WNc7rweE6VOZnruo+xIxPUSmEjFr5FVsR1GCz+9AzOH8NmlD7yF9ixlxbG+sFWpNf34RRhfWJv8SAhv7nw80kNJN6IiOIFSaAHKDRoWTWmVE22YoB00kw92jIK4vPGqAb1uiEPZ5jOM93QOYEmhCfsSfNr5Syp7ZHz7ruL6Qt5k5ThOa5nvCag5u0nMAZ6oRMFQCIu4jKPGKIizQbxOR8zno/A3MYgqzTeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by AS8PR04MB8692.eurprd04.prod.outlook.com (2603:10a6:20b:42b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 15:21:30 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9bd3:48c9:ff58:9880%4]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 15:21:30 +0000 Message-ID: <96a500b4-1b68-520b-bccc-01d78f8e6f6c@suse.com> Date: Tue, 4 Jul 2023 17:21:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 05/10] x86: SIMD shift-by-immediate don't need to go through mod_table[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0256.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AS8PR04MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a78b9a5-5a83-4a14-1979-08db7ca2581d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F5EEhllGLWXFEM7MK5LSsgA7wg5eQ+8W52l44diswzp7/wfbRhIrgjjKV1V7MgF3+diOjjnQLZ14v2W3HIzavhm56BwwnYYqGlFnRZk9Zs+igyqmxNnBQbdKDK5L4z/hoyiMOR48FhJpxxUnRwLyY3ACnfPHiuCzZROcXd5wk0PjoFc0XJr2oqKzM6Rjm2yp5YkIG+COs5VIzp2j5BuvFjINkIg6OSJdJ2QJyBqLi8eDFrgatApMjp4mElHa801udLwPK2LSdaBZ8x8Ynp6oEOgH3j0qbb46dN3fLGOb2cKg8std043LS6msJPJTUrEDVVVjJmVLH7w+08nEhxxdqLFWXjYaNpRAk46Szv/0VH0nbBA8H2e/cbNRoRR6A6gNsEm2wzV4/j0o8ETN7e8ooV9FIfCC+EOZhtyHJno8sl29eB9cuMoFS1C0nzVLCz5aR1GEQPWOTv8MiV0X31a5lqKH5aXG/80LHoT35liAUNUeWdVCt1caG2L0jV8gQwSUtjkL2vwwID90RhrH1kHx76eW6V8YOcfI7/NvD2Bu+4jj6I2XXUv18XilzacWWb8wpX98IFDIPXbxTCVBvYtn3pSVj6pWKGqqw1rc7JPztkhAU1VjNmnSHDi1iiZkmhePLT0/I14wpO0VK+Y8xuWgHuHKZtUGVlFxyCNl6uPFd1I= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(39850400004)(376002)(346002)(366004)(396003)(451199021)(478600001)(5660300002)(8676002)(36756003)(8936002)(31696002)(86362001)(2906002)(38100700002)(66476007)(4326008)(66946007)(66556008)(6916009)(316002)(41300700001)(26005)(31686004)(186003)(6506007)(2616005)(6486002)(6512007)(14773001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?4raQXawXlqk4es09nafFADLNlhoF?= =?utf-8?q?cAdOQIxXVCqk630klz/e6hlMAFwQ0zE6o6+g5p1mI7iNc14bcWyui67OPRW4QU5Tq?= =?utf-8?q?07llHCygXR5IIrTVpWEvHF4Ct4sAP/NYaSls2PKilpw4Hm3beOjAWm/OgfDeCaCd/?= =?utf-8?q?vi42GKE8MKZSDO2pYKXt76RMxQiqZuW/k6o2htVDgSem0PkLJprMpSAG/MklNagPP?= =?utf-8?q?QGnU+d7CP5Du/4pXRopvU+CXBlsFgjFwUm7Aja1hFm3fGn0P3zEBuzHx5JCHyvZZ0?= =?utf-8?q?ye29YoPAFnUdE5Wj3vp6Je62cxD1wHLS6QR0shkyF8Pvf5z5C+5dLwco40MFliAwd?= =?utf-8?q?3vt+pSNHH+rKox+FLTOnAYrrYfqqBUElhXcvqSDmDKgg31P4SfrCL/OT6toBTKO2G?= =?utf-8?q?fFkq6pChTIaznV5dDrSOUK0CnD6aedKPeIu2tjsXKGHaIQfP1wzMJ/Ql1clnq6gE8?= =?utf-8?q?6Yx1myzbvWEyLa570svv6vPOeRESOGOnnoj9vHJOvKxkDGbKQeq1mMdt+GtFBPnHW?= =?utf-8?q?ACJ7Q7vwW5lE9n/RudToWdkRJyng+UUzIEU+pn7gagd8hJPiAkCDlvR1AYZzs7vyP?= =?utf-8?q?R4BveRDwNte2QT3l/QZhVzgKnzGIYSGUpmIZ+MsdQTemEK+kxvyTh7VJ7iPG9VVVP?= =?utf-8?q?kFRMuUKs/fB/koRVc7o0EfiVIadUza2xcrhYJ2BmGgv5o+tOlxzfIVxsPEVo4FuOB?= =?utf-8?q?xH/m45WwG644TFzo/5jC7EhUxHfT4SHOb/LURbYxmAqAcCMYhpq4h+TN6sUcxocEE?= =?utf-8?q?NroGjEnDf1PwO8wRFCkXhD2Uo1PVefCJ0Gc+UZ2zH3ta9KYFUkmlz6Rd8c/cylN31?= =?utf-8?q?jwsQOKP/3u/C9DaZe98Q/8XCD0rpLcykhmHu6TL1PyWMQOgEDfV5ZQvYzQHbVLNrB?= =?utf-8?q?YlTfOKedxa/nU2vxwrsKDAVU8HqAb0Zih3q1/Bd/9KetcZL2763Ak4O8Kj2jZvKyN?= =?utf-8?q?LoOtYdnhAA13sbOTTYCDvz6Jsgo1nesL/Yg0zYAbZaErEM37ScOJ1rqBZwwl5IDhc?= =?utf-8?q?AzNnsBX0CAH5OxUkZAzFl70hYBJnwJC9mPgFxe4hWXRw7DRoUsuQq0vY97YoiHPx+?= =?utf-8?q?I0GjPMb6gfBzj2cjFxZdS8vO/pAGR3qbhQ55tVtg7wuwmsGDgjz62rNKO0vcwh2Od?= =?utf-8?q?lOsJY76quOuEzJTFFj0+fC3bP3yWuiaXfj8B7N+bry6OyrISHJewdMNOl5bZUKZ4o?= =?utf-8?q?S0GFnm8abvTdqmYa168Gk7I8RwmB6qMduCQ50w+hewVsFkiyPMWW6d6TEeYF5ZInm?= =?utf-8?q?6YjUwjBonZ/tssBV1cg/KwAHTFyI5NfPcLy/fU3nDrriUixMxQuixshu6abC7EjGa?= =?utf-8?q?FYKbJMAqcFgSCjdVcxthqd3ycSMFoSJY2n8Ao2f1yjNXWUEddJgNnWUiap4BC6FKd?= =?utf-8?q?dhzUL/pPFmV637nyNI46iCMNGP+Xl67Gc17hIVbr8L0iKraIEbSd/YxSDMyVGeZ2X?= =?utf-8?q?rKD1+JrviWbO3W8ik5aYiq9IQvax/RQe4XISZW/1sl6tc6EEvzmEJGJ3OW32qn730?= =?utf-8?q?sADf1k20RlbM?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a78b9a5-5a83-4a14-1979-08db7ca2581d X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 15:21:30.8921 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Jp0AM8QCuEQdjWsASLKw4c7jZ+x4CTZkugNigq1SmOCwN9C5sBixEErEYqj0auAZd+nVdlLDmDwdIPmJmNykUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8692 X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770503976270462351?= X-GMAIL-MSGID: =?utf-8?q?1770503976270462351?= OP_MS() and OP_XS() reject memory forms of insns quite fine. This then also eliminates mis-named enumerators (we use M_1 for register forms). --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -828,17 +828,17 @@ enum REG_0F1E_P_1_MOD_3, REG_0F38D8_PREFIX_1, REG_0F3A0F_PREFIX_1_MOD_3, - REG_0F71_MOD_0, - REG_0F72_MOD_0, - REG_0F73_MOD_0, + REG_0F71, + REG_0F72, + REG_0F73, REG_0FA6, REG_0FA7, REG_0FAE, REG_0FBA, REG_0FC7, - REG_VEX_0F71_M_0, - REG_VEX_0F72_M_0, - REG_VEX_0F73_M_0, + REG_VEX_0F71, + REG_VEX_0F72, + REG_VEX_0F73, REG_VEX_0FAE, REG_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0, REG_VEX_0F38F3_L_0, @@ -884,9 +884,6 @@ enum MOD_0F1C_PREFIX_0, MOD_0F1E_PREFIX_1, MOD_0F50, - MOD_0F71, - MOD_0F72, - MOD_0F73, MOD_0FAE_REG_0, MOD_0FAE_REG_1, MOD_0FAE_REG_2, @@ -911,9 +908,6 @@ enum MOD_VEX_0F47_L_1, MOD_VEX_0F4A_L_1, MOD_VEX_0F4B_L_1, - MOD_VEX_0F71, - MOD_VEX_0F72, - MOD_VEX_0F73, MOD_VEX_0F91_L_0, MOD_VEX_0F92_L_0, MOD_VEX_0F93_L_0, @@ -2188,9 +2182,9 @@ static const struct dis386 dis386_twobyt { PREFIX_TABLE (PREFIX_0F6F) }, /* 70 */ { PREFIX_TABLE (PREFIX_0F70) }, - { MOD_TABLE (MOD_0F71) }, - { MOD_TABLE (MOD_0F72) }, - { MOD_TABLE (MOD_0F73) }, + { REG_TABLE (REG_0F71) }, + { REG_TABLE (REG_0F72) }, + { REG_TABLE (REG_0F73) }, { "pcmpeqb", { MX, EM }, PREFIX_OPCODE }, { "pcmpeqw", { MX, EM }, PREFIX_OPCODE }, { "pcmpeqd", { MX, EM }, PREFIX_OPCODE }, @@ -2745,7 +2739,7 @@ static const struct dis386 reg_table[][8 { { RM_TABLE (RM_0F3A0F_P_1_MOD_3_REG_0) }, }, - /* REG_0F71_MOD_0 */ + /* REG_0F71 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2755,7 +2749,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "psllw", { MS, Ib }, PREFIX_OPCODE }, }, - /* REG_0F72_MOD_0 */ + /* REG_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2765,7 +2759,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "pslld", { MS, Ib }, PREFIX_OPCODE }, }, - /* REG_0F73_MOD_0 */ + /* REG_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2824,7 +2818,7 @@ static const struct dis386 reg_table[][8 { MOD_TABLE (MOD_0FC7_REG_6) }, { MOD_TABLE (MOD_0FC7_REG_7) }, }, - /* REG_VEX_0F71_M_0 */ + /* REG_VEX_0F71 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2834,7 +2828,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "vpsllw", { Vex, XS, Ib }, PREFIX_DATA }, }, - /* REG_VEX_0F72_M_0 */ + /* REG_VEX_0F72 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -2844,7 +2838,7 @@ static const struct dis386 reg_table[][8 { Bad_Opcode }, { "vpslld", { Vex, XS, Ib }, PREFIX_DATA }, }, - /* REG_VEX_0F73_M_0 */ + /* REG_VEX_0F73 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -6015,9 +6009,9 @@ static const struct dis386 vex_table[][2 { PREFIX_TABLE (PREFIX_VEX_0F6F) }, /* 70 */ { PREFIX_TABLE (PREFIX_VEX_0F70) }, - { MOD_TABLE (MOD_VEX_0F71) }, - { MOD_TABLE (MOD_VEX_0F72) }, - { MOD_TABLE (MOD_VEX_0F73) }, + { REG_TABLE (REG_VEX_0F71) }, + { REG_TABLE (REG_VEX_0F72) }, + { REG_TABLE (REG_VEX_0F73) }, { "vpcmpeqb", { XM, Vex, EXx }, PREFIX_DATA }, { "vpcmpeqw", { XM, Vex, EXx }, PREFIX_DATA }, { "vpcmpeqd", { XM, Vex, EXx }, PREFIX_DATA }, @@ -8040,21 +8034,6 @@ static const struct dis386 mod_table[][2 { "VmovmskpX", { Gdq, XS }, PREFIX_OPCODE }, }, { - /* MOD_0F71 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F71_MOD_0) }, - }, - { - /* MOD_0F72 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F72_MOD_0) }, - }, - { - /* MOD_0F73 */ - { Bad_Opcode }, - { REG_TABLE (REG_0F73_MOD_0) }, - }, - { /* MOD_0FAE_REG_0 */ { "fxsave", { FXSAVE }, 0 }, { PREFIX_TABLE (PREFIX_0FAE_REG_0_MOD_3) }, @@ -8170,21 +8149,6 @@ static const struct dis386 mod_table[][2 { VEX_W_TABLE (VEX_W_0F4B_L_1_M_1) }, }, { - /* MOD_VEX_0F71 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F71_M_0) }, - }, - { - /* MOD_VEX_0F72 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F72_M_0) }, - }, - { - /* MOD_VEX_0F73 */ - { Bad_Opcode }, - { REG_TABLE (REG_VEX_0F73_M_0) }, - }, - { /* MOD_VEX_0F91_L_0 */ { VEX_W_TABLE (VEX_W_0F91_L_0_M_0) }, },