From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2064.outbound.protection.outlook.com [40.107.241.64]) by sourceware.org (Postfix) with ESMTPS id 5EF643858430 for ; Fri, 27 Jan 2023 11:36:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5EF643858430 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OAEgGn/MnzzIYV4ZdVAb5vs/zkLIjEhsIz1fWGVbFS12q0Ll2/y0qXMRNvwLgTSogQlu7Bkcpc6KyqU2p0jKt8oxFaX7+TB97CqE7x0FOYotswjvey5R3oKF6eUZOgyIHxLXdlx/2i59EhIHrxeN/Wgkp353M6NmwV9cmWt2SDhQhvD+/T1YEGq4asqGRztA6wWlOgnpeiMD9SiJMWESt5pXRXGGcSiCHZqRyjLMh/M+8BjBl3I7S3Bzl4oUSGyZdcUB5JfepVCOSu8IA9s8dybmSpsteI8xT0o9LvPXOXdWodMWsAXDgN6qJul6yNIAuTjshuTWEzOt4u4vgI61Tg== 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=ZcyqSlwY+T5ICemcTwElBmEjgD1q5lHRfxzOarD9P04=; b=ZYmPXUjHJ9P+C3ejCDOKlxgBRsY0FgqqZ7aZSM19lzCAPCj39PduoBGmjyiRvVvMN8wC1QLfm/xzsVSziaYV43bZuKzoWiwvyU+2GtFee8Z6luslOWeW75/TODl+4NpxixClo0VTzEPhliU2sCu1VFCDoba6XpL8qKBUtL0LnZiy5YGiyyoWWaeaBxjbMvILP1+fG1X25LAZYT7d3JvCe8yu+yY5eR5W6kCbrWyGoNSF6Cse+EyPDUxWvb8OTC91isW5+apsknUndXZNgbeo1Hp1tveLH+RqM+6RGPVmjY5x5dKoy8VrTXrZFZdXmB72q/p5/RncT2NiFt7hJ2WvvQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZcyqSlwY+T5ICemcTwElBmEjgD1q5lHRfxzOarD9P04=; b=NVEJM9UPo9FNW73aas/+hJ1nNpzxXqhsqkKJfVbgJJsOQEDAPTz79JD3/5iSPj9WdN+77l1gZJb9nC0B6cL/PsBw4BPQIqjzdfDpS/uDo+UrBHUsVU4Cu9n/Q3cvK0QlGQl7bZfi3n10xeoTJsDR8futY78gfJ231t2DuWpevQ1r6OUhgsLprHfGxS20H5DP75ZZrv5Yb+VLVw3ClyVxmm31QO6nUhmDs0s4a0ceZm/AYQJx8spUcXAl7BVh7Os+r5jV+iMy1r6YQGMfxNOe6jF6sSDfnX1OTr8oi8bI4JbVicbokvSCroadZxMb5SEZkfYtapVWPJ/1GzvlnCGhnQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB8136.eurprd04.prod.outlook.com (2603:10a6:20b:3f7::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.23; Fri, 27 Jan 2023 11:36:04 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.6043.022; Fri, 27 Jan 2023 11:36:04 +0000 Message-ID: <44b896ee-5b03-1ed6-bda2-8cffec382810@suse.com> Date: Fri, 27 Jan 2023 12:36:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 3/3] x86: drop LOCK from XCHG when optimizing Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0118.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::13) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB8136:EE_ X-MS-Office365-Filtering-Correlation-Id: 87ca9490-8114-4570-c85b-08db005aac33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zwglEKkS3/Fi35142InXkyJK08X/F5m9Pj6LfQX5KAcl35RCmG/QDTx3Imgf7wAz/AUiue2ntqeTgufxUX3KmK/AYEBYSFFlzXnFy7b33i8tNcGhdOulyZw0wnlNWZEZbYdNEt4sDvXEaM/YbgdZA6Qx2N5uJcY+QG0qi6LX8PhcM5IKVtEJzzWB22wenJCp22EpGP4bzcGbqqGjYFoQr6K3AbjSCsTm/hntdpwcL9M1WZB3+dfd2P0xH9n2/LFfsUEY+/ke78r8osmDKmtnwilATVOFxO9jgZe/Mb4Uwh5Z+f5oEfYfTLgC9MnsG6SBjYMBzNEUhX15xmgRgpmtHivuK62Vjk5NqJG2w+LOIpj7KqRZsPD/8W3hqlg1L7s75FiIEOtKli7BGHAX5FVtWJvfu7Fo+n5/nRneIwzG74aoJyL1N8YHrtlnMuy0ij5LRRefmaXYvRhpNpfXpcnxO/HNXvcnqTq/3llK6RCHIuXy/Okb0kFkOFpo4uViZY3bC4ajTNvV4hxfvoKqkU+ERJ/b0jTdZMQcNYDRvA9zPKvM0QF4AV7JbXfmiZC3ej+cKAkbju771FS+gpk4X2CwoO/3cvEYft8JqUGZiNiFUVQN5+S6FpRroFBxTEbwovd3vHDw9pCdpNP2I8HiJLTm5t7uK8igXBdjJVza8amHcQaRQWJeKOGcANpJ4unvevnxBaw8iPnmsm7I6X5KKp3gy6KSGxvEm54WRtcpeJOhC20= 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:(13230025)(346002)(376002)(39860400002)(136003)(396003)(366004)(451199018)(31686004)(6506007)(5660300002)(2906002)(36756003)(316002)(8936002)(41300700001)(31696002)(2616005)(4326008)(6916009)(66476007)(26005)(66556008)(186003)(6512007)(83380400001)(8676002)(66946007)(86362001)(38100700002)(6486002)(478600001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y21IMGduSTdTRUdBZG5YemVxU2RjNWFpYTFxZEJJa21XWW4yTU1ESHdKT0J6?= =?utf-8?B?QmJQMnU5S3NXQlBOY1hhZU9XcEphOTN5Uk0wc3c0R2FwNG1wUTZMRExaOEQr?= =?utf-8?B?SGEzWWRRV0Joa1Z4QTBqVytXVEF0OXNDQ1ZJR29VMlhxUFlNbUlKQzFmdVdT?= =?utf-8?B?TTdzOUU3S2g4bTJuOGxQQXNPWWE4NDlLeWZ1enNPZExaSTdOanhjdWhTUjdv?= =?utf-8?B?R21Pa2ZFOHdpYmw4UHg4ZlQ5UUF4YVYwRjdlcnQ4TjdjRE1qcmZPdEtmN3cv?= =?utf-8?B?TE16TnFsaklOMFNETWRJZTAyVlN2V1orZVQ3ZndURkFocXEwRW95SjdqQTNi?= =?utf-8?B?eDE1RUc5elFYWG13L1RzaEhlNm9JcTNlY0FYdVpvMDFjb1ZjdWJqc0FKNW1S?= =?utf-8?B?bWRUd0c5elpBNGpaTndFNms5RG9QQ3lyYjg3MnRTMzJ0L1VLbjZGbnpPd2dR?= =?utf-8?B?TFpIOXNqL0h0UVYzS3ZJeE5pUUh5S3ZOSHJLblBuRTl6OXp0bDdOQVoyczll?= =?utf-8?B?THJmQjkzdkFXOW5iZDFqVkRqMnpJdjlsUW1ONEwzSFo3OVJpTE43NFRybFZE?= =?utf-8?B?WExGWXROdWMveXpDcHRuRnRKdzVtZU1HeGRrOUpXOTVHaXd0OUlGcG9UdzBP?= =?utf-8?B?VmNHNWVrMWFvK21wUko0V0hSY0kvWkpvY2I5clVvL3p3ZnF6SXh1YTd2OXB3?= =?utf-8?B?ZnlEUm1UVVllWGFOYU82WjNhRWpxTjd2VGJmdHcwc3oyb3IvdGdZZUFIZjND?= =?utf-8?B?amJESU91UmEzYjlxUzY3Rmswb2hOWVo4dGhKM1k3bDZ5RTROOUxvRFphbTVT?= =?utf-8?B?Z3R5eVorUGF0SDdad05EVzdvQ3JJYUZXdEI4L3R5cmlsNUdFMFg1Qi90VFF0?= =?utf-8?B?TkNNQnZkeG9Vd2JTcGdqMGk5eTB2ZTRLTm15WDZVM2RpbFVlNk02amJzcHZG?= =?utf-8?B?ZWFZR2tMYWdEbThuSlFUZTlOUStFaEN5WlBQK3M1emxNbVlBTGlwNThqdnpt?= =?utf-8?B?b3pSWXpGMkwvY3lMYmk3T2JNR1pyMWYwckNBajNpdUJrcXJEWmVyaEhhV1VS?= =?utf-8?B?YUt1V2NYUyt1aDIrMC9SOHhYSzB0dEtwckswTkVtc3Z5WWJoSVdTQkhSUFFE?= =?utf-8?B?Uk12d2ZWaXJjVFNpTkJnUzJUUEZ1N0hoV0s0ajl6NzZka1hrYjQ0Tld4M29X?= =?utf-8?B?T1ljanNNUnVrTTgxdU5YOElRRmhSRVVrY0tHNEZ5cjFYaVMxVUNxS083Wlk0?= =?utf-8?B?SEQ4Z0NuMm5lZE9OVXgzdWVnZXVkdWJKSWVmeFQ3ZlJCOUlyTEVEYk9xYVZv?= =?utf-8?B?YnVpanpJUXpBRThnTUt2cXMxZkRjbmFxVzlHaVN0T2lPWXhKQmJremt2VXVH?= =?utf-8?B?M243R3kzQTdkRWJBb1JJYlFoNDBwL3dzWXk1Ym4wODQ0ZXFQMHR0R1NpSndR?= =?utf-8?B?RkJEdEI4NWZQNXhCTVhxaDVVTUtaSXFWNXJSOUh2SEZyck1VbnZ3VHM4UWNn?= =?utf-8?B?ZTROMGlKWk1CaDZRcXJCRUNYMzNwSm1yNHp2Z2ZOTGRDYUozWEdjZHp5M0Jx?= =?utf-8?B?d0NjYkdiN3hkZ1hqR1V5d2xNdERLUHJlT3UwdVJCdWorTDM3dk5IY1VrVjdX?= =?utf-8?B?ZkhuNS94T0Rpb3cwUDlVUjl4U3A2RmNFdnZybGU0b053TEVEQmtwMEQzaG9u?= =?utf-8?B?K00zL1pkK0lIV21ndmR3ZU1RTjl6ditxdytoS0IvWDJDRGMrNkRyRVNHT05V?= =?utf-8?B?RVNGcno5dldXTFI5cHkrdG5iREpjamI5bVd4Nmp2MVQyTmtjeGNzbnR3aGhH?= =?utf-8?B?THE2TE9IRVFPVGl5QjBwdGhFZmMrMmkrK0FpaUJCY1FaR3FPL0FXaTZaU2Jp?= =?utf-8?B?ZW1QeEFrVXpxYUwyRUJ4SWJ6UmtmSkkyanI0U0Q0dVY0UzFVdWp3cFErVGpG?= =?utf-8?B?b0VsN2M2Z3k1RDlJNlpOOVlnR05NRFM4NHhWSTRXQmlXTzdCS2hPNE5GaUNV?= =?utf-8?B?Zzhza1F5TTFFM3AySTA5Mk0vSGxNUnd0eHdoaEdwb3RlaGdKR2JscVk3Umln?= =?utf-8?B?K3U1RzA0MWVlRGRjNGEzZGw2NzBSTlB3eWZTdThkUU9WZFJFMldJa3g5c3R0?= =?utf-8?Q?KXa/gN+pJVmo2u3CGNEOyO+Vw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87ca9490-8114-4570-c85b-08db005aac33 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2023 11:36:04.0907 (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: AMDuaZ0A4RecNbzTSAruS+DZ7vnUcblP5//Ks4/1qoA9we4VsD1zQz9+4rbkdur8jzm6AxzyfDj2hYySkCDX7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8136 X-Spam-Status: No, score=-3028.6 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 List-Id: Like with segment overrides on LEA, optimize away such a redundant instruction prefix. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5179,14 +5179,20 @@ md_assemble (char *line) /* Check for lock without a lockable instruction. Destination operand must be memory unless it is xchg (0x86). */ - if (i.prefix[LOCK_PREFIX] - && (i.tm.opcode_modifier.prefixok < PrefixLock + if (i.prefix[LOCK_PREFIX]) + { + if (i.tm.opcode_modifier.prefixok < PrefixLock || i.mem_operands == 0 || (i.tm.base_opcode != 0x86 - && !(i.flags[i.operands - 1] & Operand_Mem)))) - { - as_bad (_("expecting lockable instruction after `lock'")); - return; + && !(i.flags[i.operands - 1] & Operand_Mem))) + { + as_bad (_("expecting lockable instruction after `lock'")); + return; + } + + /* Zap the redundant prefix from XCHG when optimizing. */ + if (i.tm.base_opcode == 0x86 && optimize && !i.no_optimize) + i.prefix[LOCK_PREFIX] = 0; } if (is_any_vex_encoding (&i.tm) --- a/gas/testsuite/gas/i386/optimize-2.d +++ b/gas/testsuite/gas/i386/optimize-2.d @@ -22,6 +22,8 @@ Disassembly of section .text: +[a-f0-9]+: 08 e4 or %ah,%ah +[a-f0-9]+: 66 09 ed or %bp,%bp +[a-f0-9]+: 09 f6 or %esi,%esi + +[a-f0-9]+: 87 0a xchg %ecx,\(%edx\) + +[a-f0-9]+: 87 11 xchg %edx,\(%ecx\) +[a-f0-9]+: c5 f1 55 e9 vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: c5 f9 6f d1 vmovdqa %xmm1,%xmm2 +[a-f0-9]+: c5 f9 6f d1 vmovdqa %xmm1,%xmm2 --- a/gas/testsuite/gas/i386/optimize-2.s +++ b/gas/testsuite/gas/i386/optimize-2.s @@ -20,6 +20,9 @@ _start: or %bp, %bp or %esi, %esi + lock xchg %ecx, (%edx) + lock xchg (%ecx), %edx + vandnpd %zmm1, %zmm1, %zmm5 vmovdqa32 %xmm1, %xmm2 --- a/gas/testsuite/gas/i386/optimize-2b.d +++ b/gas/testsuite/gas/i386/optimize-2b.d @@ -23,6 +23,8 @@ Disassembly of section .text: +[a-f0-9]+: 84 e4 test %ah,%ah +[a-f0-9]+: 66 85 ed test %bp,%bp +[a-f0-9]+: 85 f6 test %esi,%esi + +[a-f0-9]+: 87 0a xchg %ecx,\(%edx\) + +[a-f0-9]+: 87 11 xchg %edx,\(%ecx\) +[a-f0-9]+: c5 f1 55 e9 vandnpd %xmm1,%xmm1,%xmm5 +[a-f0-9]+: c5 f9 6f d1 vmovdqa %xmm1,%xmm2 +[a-f0-9]+: c5 f9 6f d1 vmovdqa %xmm1,%xmm2 --- a/gas/testsuite/gas/i386/optimize-3.d +++ b/gas/testsuite/gas/i386/optimize-3.d @@ -9,6 +9,8 @@ Disassembly of section .text: 0+ <_start>: +[a-f0-9]+: a9 7f 00 00 00 test \$0x7f,%eax + +[a-f0-9]+: f0 87 0a lock xchg %ecx,\(%edx\) + +[a-f0-9]+: f0 87 11 lock xchg %edx,\(%ecx\) +[a-f0-9]+: 62 f1 7d 28 6f d1 vmovdqa32 %ymm1,%ymm2 +[a-f0-9]+: 62 f1 fd 28 6f d1 vmovdqa64 %ymm1,%ymm2 +[a-f0-9]+: 62 f1 7f 08 6f d1 vmovdqu8 %xmm1,%xmm2 --- a/gas/testsuite/gas/i386/optimize-3.s +++ b/gas/testsuite/gas/i386/optimize-3.s @@ -5,6 +5,9 @@ _start: {nooptimize} testl $0x7f, %eax + {nooptimize} lock xchg %ecx, (%edx) + {nooptimize} lock xchg (%ecx), %edx + {nooptimize} vmovdqa32 %ymm1, %ymm2 {nooptimize} vmovdqa64 %ymm1, %ymm2 {nooptimize} vmovdqu8 %xmm1, %xmm2