From patchwork Thu Dec 1 09:11:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 28258 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp155622wrr; Thu, 1 Dec 2022 01:12:12 -0800 (PST) X-Google-Smtp-Source: AA0mqf4rlw+jVblq3VfXZ6G7D6pQVK52LWk8H3Ti1e8ekyDcgP1HiPlS+SgeqD4GBg5ejSvu3oBq X-Received: by 2002:a17:906:6dd5:b0:78d:a633:b55 with SMTP id j21-20020a1709066dd500b0078da6330b55mr57642133ejt.106.1669885932837; Thu, 01 Dec 2022 01:12:12 -0800 (PST) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id gb35-20020a170907962300b0078d8db64fffsi3429417ejc.20.2022.12.01.01.12.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Dec 2022 01:12:12 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=o+K9LW6Q; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 A5CAE3858C74 for ; Thu, 1 Dec 2022 09:12:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A5CAE3858C74 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669885930; bh=qQdeAmYqhbXbpHNAtiEXKHpnftV31S1G4O2QbyiIB4Y=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=o+K9LW6QaG67tCi+B6IhK/HDY/ABNDFcl7XZq08x++NzTJntoiASpUx9W9KwqI4tV qCyxfH10Sg9HKEqOLGBPpeNwdD6KWf9ce7I+kWvxWcREODUXqILVmL2QuK5G+14rVy Z/JCjCxE1s2xMm85w4Q/hJnFG0oXTBAZhO07HgtE= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2060.outbound.protection.outlook.com [40.107.22.60]) by sourceware.org (Postfix) with ESMTPS id 868683858D35 for ; Thu, 1 Dec 2022 09:12:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 868683858D35 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cD5Mqx5OKUrJ5PhbmLgICtcHxzugxjy80vpoG4/m5XbSHFcZierz2ZWv8mKbUMTJWDWdLuQo5vVukLzoC3jU+jA3J8RFIzHDC4zllSHAtNkHgKfC+AdWS6m0M91tmn2duq8PTAbRseaNR+ftDH36AoCsYCYFwqXJYDn78OvOc2Ygd+Uu1vyO43n4EYDFWpEuItl/Ipbnh+ZKPVIiPg4MvgaQTzQW18NXZOVaMXRmWXLt6WlA2Ga1HC+dbJEAb5J4EXg+2wFplb4PM0sTRbavLFPKUMeuoJCGwoeBW+bhVopJdlyEuY7UH7BI6velXgHNKelfUrYzjnPE4wYQwm57yw== 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=qQdeAmYqhbXbpHNAtiEXKHpnftV31S1G4O2QbyiIB4Y=; b=nhzgB9CKdEaNr+l/ErF3t8KiyPw+hqWo5Qe7Kz1ODx5jS/eIp9MWiHSJ/ScaGG3k+rtBU/6nBCalRbcrMOtUpYI5ao+QMXYw0fVHgqyms9GkRq9V5q5Nnwr1Ql4WJyDmTrFj2ATeYAZvgLk2jJtRfMcPb7xLzF6XFo0dosdtpmp39W4WUqdnHRoiNrdR0z2E7QO1cepgiHtMsd7x94qbmmXzrViROMgCfzkwgIhfdEH4RCdFsn52ho7JjIpX7BYxoLtffZaWfxjnCWLq3x5AfeK5WeSFWhuNHSFqow5Dk2566aigl/kRfA/OiQL4bwc2uuTGZiPOZkEbcGwDemFOgA== 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 VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DBBPR04MB7546.eurprd04.prod.outlook.com (2603:10a6:10:1f7::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.21; Thu, 1 Dec 2022 09:11:52 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5857.023; Thu, 1 Dec 2022 09:11:52 +0000 Message-ID: <35539292-53a8-292d-2f5d-f65ad02a36bb@suse.com> Date: Thu, 1 Dec 2022 10:11:50 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: Binutils Cc: "H.J. Lu" Subject: [PATCH] x86: simplify and slightly correct XCHG vs NOP checking X-ClientProxiedBy: FR0P281CA0054.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::16) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBBPR04MB7546:EE_ X-MS-Office365-Filtering-Correlation-Id: 135f781e-6f17-43d7-4e19-08dad37c15c4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x4K8H18M4I+hVQoYiRNOLf5T5BT3ALkofTFliuexSMgAMxjLivDfGssO6nnmmtFq2r0ME/wCpNKdsHrPyZpYyHySYmzYcm/10WgqgU1aZMbPSrk5L2qCtDOSBx4YsDVG2DPggm5WHutLL20oIqzhORsZWiBgUZBMTbHONgBbsZc9lo5HMMC12OO2ovw1OD48RsPbwmDcQFvH3sII9NTXcbt8q/B0ErtenyG1NKjLQ0tnKN7PRwp5/tVrgtoTUldTCcuHex/xB9Jl/7j4iEF/cHvMz3QooclwjTbAMeZGQ1N/UrQUiiMSA6yf+7LfUSvB0+n0Zvc+ihuEqukurWj5UhqUqUeYti5LXT09NrtuUatWaWlHSlnOwzTSXFvnbyErUPZT1Qemu6mj9g/g0A9Q9tGms497rpWVy1wEXo9O7bKRskMgaLYnHjq3NLE9jdSdQkFLQ+nAQzp9CQRBCXRgAjCrZNrhP88HDLd0wlF6WghkcQNvVKwBELFygxtjFwXZ7ZxdkMsG2nMIqsqLub+fRLuPBcBZH887EeKEas4Fbz5wCQyG6brh7QZEDTnLIL/C3vKJ8p7he0x4pwWNxFD1wq8aXgvM5TJ/Ji+1JNLW99A3K+fuIU66azJYEpnlc39fMt1Av5y1g9WM0S277i/ZRTzA12NWPO8EkenjObDKzWJ1ix4NYmUUljmhO11zA1c8aK7tH4CzvIXeMiEh1ajG4Qrze5nBkeMtDW14k214DkM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(346002)(376002)(366004)(136003)(396003)(451199015)(31686004)(6486002)(478600001)(2906002)(6916009)(5660300002)(38100700002)(66556008)(86362001)(4326008)(66476007)(36756003)(8676002)(8936002)(31696002)(6506007)(41300700001)(66946007)(6512007)(26005)(2616005)(316002)(186003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?C+3jBTHBotb5gFWsxQWPdTSfJtIb?= =?utf-8?q?lTaqktncagsR+lNAAUV3S+OpDtK8ETzSP5obuDwy1FctsAVS4Vh2G9hrnVXYHhs8f?= =?utf-8?q?Tg5b1BYjU6KdQ9n1qNLZ4OQjG5SGxvrmo4gUAOtAp2x+s/TMDoCBChm9OoNRWRFuk?= =?utf-8?q?KfFU127iqX6PLLpN7fVm64vK0MOQqFNRfDQfxqpejFnVwLms99aolEisFLKDBFhqo?= =?utf-8?q?cTVVcKfCtoGLUVjFsO+VuagQatUysDO8a98qlMXjlw2IVMkbtdSN9orlMyvVPA2Xd?= =?utf-8?q?WgtnLpHWbpW0WtoP7OcETiyxfKpkw3s+2Yt/qhJgBH3ARi+UuxYV3NDJj14ojqYO9?= =?utf-8?q?/TLpwHWWJkFw2iYvkA2/6WqHiud1PNiSrywDo9CHVp9KvqQmD4uQd+u2gSP5YzD5A?= =?utf-8?q?8bVmpoiaj8CxZkL5FhzF0mzckRdWIT5rkFVaVCP/o2zpHO9fzqutVCW58aTffJmVv?= =?utf-8?q?Wi28fIF7D+CltO1iBqyickQVtYB/0Fe9jDKlejp9ioV82zJ/XPzO9IUbhPLrL0bhr?= =?utf-8?q?6Cdt/YQjjVChErO22YvyRxOUCb8gXHYQdm9W0TE/6zEuGCMVbj7m6xjhel6PjIwpi?= =?utf-8?q?wVafdYpm6u/3IrXv7kX+1ZQ208AwvQOsKUiWOxdq5C7+TBhESiGv90y3KrHRCgvmI?= =?utf-8?q?+5mvXk8e/SvVZ/fCHu84eVokdBwQJz/po3rPIglB8t8f9HUZeGyenJ0HRr/XE2d8C?= =?utf-8?q?zuIShBgO4+Gb+4yTNAJbO2tICZJ8HDhBmdLGKITwXaHEJvtsIW/yYMF5h0YZWCiZp?= =?utf-8?q?sux2HtMSfF3Dgt3xKQf5++GosdgoulJ84uy2Vnmm16kyKPjcGL1k4V39eo5ePPT5N?= =?utf-8?q?SlysDSHFrWE1EGJhF7AKth9PsRwRRHAuIOCJCe/0zqYg5HsPGzIMAX3+Oc+uUiZQS?= =?utf-8?q?wzoKuSFGz0L2XFtiyk0npC3QVVIsgAX/nXVRkp6ldnsZjYwrkyhkw6dVPx7mr6gwH?= =?utf-8?q?N651BcQWM9SB+zizN5To1+Hh2okdgrf0uyTB6OJsfV61jqQhJKw3odoUupBdmM0Wu?= =?utf-8?q?bZtWfgJ6enpgK0gzzCvvlvJ83QNBv4KIkSf1PV4DV/YxiY0d6310aUvJZviy6CYqa?= =?utf-8?q?0bVKGiF4uq2x6P0j3aXuK//obKA5elqwS2NuyLUwC33K/BNeKL7/KUFFPEZ4xcgE0?= =?utf-8?q?mTUJ67PkD2I8ohgw0pjuSHKOHSXPF0hfEH0dribMB5LqS55ueil5D4W519/1BvIel?= =?utf-8?q?QJCZ3k6BBQRthNXysqBarPk1Wpsl+k7WDC59xodcPeyK6xJU6ZjkRxseuL4OoLi8c?= =?utf-8?q?bGe00LIgU5jZEIBdaFaFzLz3HrAKbLoQ4IDcKX/TJVgl4cP7Ey+4fQSYtOz0ah+WA?= =?utf-8?q?z4SkuMLDgeWMTGaLO6l3Y6BNWDhP4f26O2+zxB0JXP1AS9CJT6Ym/BIQoWON2D7pq?= =?utf-8?q?wsHrnNvJ+1m7uuBrLNG8MmdOQXwDcNr/Aj8LaVQX2vFQO/o+PDE6zHArNyRf+MONq?= =?utf-8?q?PY9jTgLRpanKNdtdinCazz6QpM+1DYWntZNWqUMj/d0XioVaIumHgecRZVRMqir/3?= =?utf-8?q?B8hvciZNOPDM?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 135f781e-6f17-43d7-4e19-08dad37c15c4 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2022 09:11:52.2032 (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: lQz5Fa4TYf6X+/ou5c29P7q/6ZTIGIqA31LtYDVB+RAm6cMLpnT94OP1vpgdF8KMgS89w1FhV4AfkLqBWmvLVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7546 X-Spam-Status: No, score=-3029.1 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 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?1751002311862829204?= X-GMAIL-MSGID: =?utf-8?q?1751002311862829204?= For one, because of CheckRegSize, there's no need to check the size of both (register) operands. And then in process_suffix() check opcode space rather than the (potentially ambiguous) extension opcode. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6686,8 +6686,7 @@ match_template (char mnem_suffix) && t->opcode_modifier.opcodespace == SPACE_BASE && i.types[0].bitfield.instance == Accum && i.types[0].bitfield.dword - && i.types[1].bitfield.instance == Accum - && i.types[1].bitfield.dword) + && i.types[1].bitfield.instance == Accum) continue; /* xrelease mov %eax, is another special case. It must not match the accumulator-only encoding of mov. */ @@ -7408,11 +7407,10 @@ process_suffix (void) need rex64. */ && ! (i.operands == 2 && i.tm.base_opcode == 0x90 - && i.tm.extension_opcode == None + && i.tm.opcode_modifier.opcodespace == SPACE_BASE && i.types[0].bitfield.instance == Accum && i.types[0].bitfield.qword - && i.types[1].bitfield.instance == Accum - && i.types[1].bitfield.qword)) + && i.types[1].bitfield.instance == Accum)) i.rex |= REX_W; break;