From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20063.outbound.protection.outlook.com [40.107.2.63]) by sourceware.org (Postfix) with ESMTPS id 910EE3839801 for ; Fri, 26 Aug 2022 10:33:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 910EE3839801 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=cQO7OHsF4CC3zIyrQHkwk/evEDVoVA3H5zJIeC9YOXzdGqujYKxm3dHqicFZPhv+mx7eCUx1UFUB3s7rrh/aM8zzCidi/IXIkStsp6pUbi7dMSW+DJUTnXQ1mzUj/Ih5d8L4CP10j68kCwWRWvEsO7epk3kf5IpYYdnvNW7HJoIlt8bTXDJNoVzTLum+659OaE0QMCHRo4m35bFrKa9gN+ZyXxJAefWpzbwFhvQoHwmWaVS6Jv9VlrmCwmlEuQBAQtr9YSYhDt4pyNgRH1InSfI8OL2AmiKLOf0zEs3Ix+Q4ioz+MwC72MYSTRNdWsdxVsY/CtcFnYcuWUVTkZndXw== 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=mSbRlbwJiaAXTkwZiqqkEF05uEssDE84hbRC3VSxj9g=; b=WW6RQWUOySxaa5QbrS1lE6ZnjWv8Jsbcv6DBoeLTnEj9JbTBDuLtRth2EqmQRYGhXiNJfs1MajO2RmVYn1wKYoutyvGKUeLWG0dkyz8RXex2cwh4XfPDDNy/qLgzaybl9YzGRYabFtaBiFcBPyQVfM5o8jtvnRzb1kZXcIxSYUlT9Ri86TZGsesMRoMLmnhadjVdUQpCRS/wdTKm/dEBq8bGuuLpZkuX37GKwHPPrZcQFpImN61/z26qYMt2jxT39DxXmf0Y7rr0+/MmOgaiyV1Ac8w6oj17WlxMApTxRiqD9VjTY8alPWvw/xOrY1YCV+Ls3a+kdgFn4/ghKu4lWQ== 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=mSbRlbwJiaAXTkwZiqqkEF05uEssDE84hbRC3VSxj9g=; b=MOzkw7j1UZ3WeQMV2WUDq3QBk5nKaIuzq0cg/92QImkKc4K+qXFLsPlL4TYy1JtKtZgFoA2Jzcc23bAmqLS65Fiten/O798Ymwk/H8hMg/EaTxKO9XtyccaD1YsEIll21mpyiVw/LP3r6es/AxRsCQLpmharQ7fureJawKY84ZHGfwXGHgSyoI8iliWmWTM5QUUVzgBejnOaLlOzAhwVsUPjcsaGB0AB+GHsUWp4eaykW5nQvi/WxMS86jSos3nzXzmLJGfgeG7zIwET/tbIEyPyNcNO8cFExXcqspk/Z72qsiQO2PBKO7+glphYfGc91IvYmEFouaqjplCUSA3FaQ== 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 AM8PR04MB7473.eurprd04.prod.outlook.com (2603:10a6:20b:1d0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Fri, 26 Aug 2022 10:33:21 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5566.015; Fri, 26 Aug 2022 10:33:21 +0000 Message-ID: <5823f182-dd09-da7c-f35f-25855f0a0727@suse.com> Date: Fri, 26 Aug 2022 12:33:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: [PATCH v2 6/7] x86-64: allow HLE store of accumulator to absolute 32-bit address Content-Language: en-US To: Binutils References: <4a27fbde-d2b2-e293-d09e-9709bc5b9792@suse.com> Cc: "H.J. Lu" From: Jan Beulich In-Reply-To: <4a27fbde-d2b2-e293-d09e-9709bc5b9792@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0122.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:94::6) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a4fea31e-ba7d-47c7-24ae-08da874e65d2 X-MS-TrafficTypeDiagnostic: AM8PR04MB7473:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SQ6OmOzfV/0v9c6B369o2rjWaK2qSxHKHJmYdW6EqgaoBrDmynfnv5/ncE06AymNspelNF/rIeYOLmT+YFpOtXfkzScyL8DYkJGfSEQoTKfd3HrD2qWcDU1ysyg2Djosq1Oc71bmmdNxG6GBTlxC8EV2u2MwcRzMTLFeE32EUcRc90jpiCRtF+VTP4o0HnqcWoABlfz/oT46KiTXZAapHQ4MK+cfssMSRWxeiscRIQi2Vm0yMD+yjy7/TdN8b+Il2JHZto/BbIsLPs5nBo4Hs4PwOyD7AEDWO6rTB94JKKX2XFM/ryB2OeLySpZ9OojzMeZbnY+DzPOmm0MP5AMzEsKvIc7nbxqdiDhCLvPNngP2QLyds+BnTKSq9GPmMBCerNjl2jugBCBH7CVA1TrxecL+67sQY4P2RGu5V/vY3H6kAg8SKs1BdlCEwfSi1Yw3Q6GG9X20IRU+H8WBD9ru3yrgariG/Uiyn6txNd8XF31iyaSN+M8zG0LYELWOvkLbCt2q+0Si/N9nFvp24SEW3o7sjjCTleDe1tDP881Gru/kr/r4A3nQ9RF0HrxbkyubHd8HLjJxEv1m7OKeYGkH4x6DbiQzAjynkA66oKx7fafKCJO2KcYy5XqKZ5+57NcWaGRWcK+4+3IaKrfrK8k6U/NJ+m1slce8kdts0mHhMVMtP1cr96BSzDHJGYYw4TNcwys+jXSrYA8/M++zgCW1DcxmQFOvS8vRsku18wvr1TGVJjvFBqAQq2AblXRvU7jahlBAAdlAElx4lXT6OUgWq28NnQaLCbVTLflKcc8EUR0= 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:(13230016)(346002)(39860400002)(376002)(136003)(396003)(366004)(83380400001)(6486002)(41300700001)(66946007)(2616005)(4326008)(66476007)(36756003)(186003)(66556008)(31686004)(8676002)(6512007)(31696002)(38100700002)(26005)(86362001)(5660300002)(6916009)(2906002)(8936002)(478600001)(316002)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VkZzMGJIN2NiVDZWTjNmMk1YUmFlYUZ2Q2VYWlRmSFFFVzN1ZnoyZVdIR05C?= =?utf-8?B?dThEY1g5QmxJeWplTlVIRkJwclVuWVJnM3phVEJvUDJPWVFOVkpDMXREUFUx?= =?utf-8?B?QzJtbThBUmhDclRQby94eENZdlVVK1M5K0kxdFMxMktQV0E2QjN6TmlIdmRo?= =?utf-8?B?ZDFJSzU5SEM4MVY1Vnk2alhYMm5rVTRMNHVZYVBDZFFZdzZrTGIxdlM4a3Jj?= =?utf-8?B?ZElmbHNBRGkxTUwycWtaQlBvdzJKVVpDOVp1bTBtNVNRUm1uaTJzQVZtd01u?= =?utf-8?B?bFBXZXhlVStZVWVYNHNLVU9QNUVmR0hucXYyclJRdkN4czUxQndycGZFeHRy?= =?utf-8?B?U1VKN3lmWmxZSWZiZ1pIQS83UFdUWWh5M3RaaXhBSUdUOStsSWhPdlZaVkpr?= =?utf-8?B?MXNaN3JFM2U0Ri90eEVlVngxd0lmald6TDd1WHFDTUQ5K1Bia1NpTWZOVFlZ?= =?utf-8?B?SXZuWXdMbGZhQms1M3NxUmhMOEVodzlIQ0NDYmxGMjdwNk4vcVdEUjF0Z3lj?= =?utf-8?B?dVpxdUIxcTh1blY1ZU1ZbGkxc2VwWjBJNDhkdWlaOGtxWWFwTndBYjNsMkpG?= =?utf-8?B?dVRHalQvZlYvdy9GUURHblVEQWVxMmdEUS8wWHc1S2xrc0JLalV6ck5jZ0JW?= =?utf-8?B?akFVMkdDckJhd1EvMnl0Vml0eE1xUklETzkzekluWWNUdG9DWXM5OFJkajVZ?= =?utf-8?B?RFVsZGtXSjRNaTlSUXBqY1U3bXRabU5TZGxML0p6V0dMV3NabW0xZFZkaXA2?= =?utf-8?B?ZzlUdTVtSzY2MnE4V2w3WGQ1dEZIZFllcHhTdXorRDA1Ly9QNlNxQjFFQmVq?= =?utf-8?B?eTNBS1laUXhjeDUvNTBqUGZWQldwcHhnVDNwZlpnMFF4aTFnQTBWL0ZaS2d4?= =?utf-8?B?eHE2UkhoQmkwRWVJVEhGZHpCa1hVZ2ZzbU9OOURVWlVwdy90VGN6eE96WTFo?= =?utf-8?B?RzBLekxpM2RnK1lPbUZSTUhlNTA4TzhpQjh5RWpXUGVOQmduekhKVEdvQ2Jo?= =?utf-8?B?cTFEakZDUHVOdkprSlhlcE9iRFJ5eHk4V3U3QlpWZU9uSEJxMGRuVGs0TWVv?= =?utf-8?B?S21QblVDV1pyaHpkTlNwbCtxbW1YbmhiT0w2YkNzd3lVc3U2S3RIR1BlS3hH?= =?utf-8?B?SUpaOUIxbUsxMkUwaHNENHdOREtGdDVaUnE4US8wZWhIampydU1naW9XLzhW?= =?utf-8?B?clBwU1lGRlJOVGtrTE82NEdrQ2JEUnpvOEpLYnhCNVo2MFhLbW9QSGMyQndw?= =?utf-8?B?dHNKSzJmV0Z2cDFiV2dvQzM5NjlHZFY3bVczS3IxNUdjNDZkeXYwWG1MLzdE?= =?utf-8?B?TEJiVmZTaDNVWkxISy91d3BNT044WUMzMld1OWxhZHUwZGRKTjNxcTVxcCtI?= =?utf-8?B?T3cveU8xOS8vODB1ZWFDNEYwUEFyU3pwNE9tWWdCSWIwemZjRHEyMmM2QzhP?= =?utf-8?B?SkRwV0pZdmF6Wk1NbEMxKzFrTTJqNWREd3J5c3hUdnVtTlNWYVNZSEhmK2ww?= =?utf-8?B?elJpZGw5ZGk3K3RxQ21uRVJtS0JGZC85MG1TOVQ0R1pJNlovaHBqWmxVczV1?= =?utf-8?B?ZUFVU0RjU3J2V3JXNFVUMjgzSDRuL2VtNDUxM0t0dzgzVU5sR0p0SmhmNGFt?= =?utf-8?B?T2dLNzBLUDd0WlI0Z2x4Q3U5YmZnQnVuYjJEZExldy80NkhmMHRIb1hTOUg1?= =?utf-8?B?VlZ2WFMxNHYzMW9lMDF5QWh5R0wra3FMdkRyRFNsUWI5ZHhva3FPUldxeHE5?= =?utf-8?B?M093YlNuRFNqRWgxak1PUWlSWmRrRTZyVEhBaUJSMWkwMXdFNFZuZTR0NlJD?= =?utf-8?B?ZllGQ3JBTnpCOTFCck9Zc3R2RmRQUjBOZXRaYW9ORWltK3g1d3JSWnA2MjBF?= =?utf-8?B?TXhVdThVeVRleXlSMkxuQkZCTGdtQlkxVVJ2YnNuWDhaUHlBNE5YQ21ZOFZ0?= =?utf-8?B?UXRYNnlDVTZ2cmNzeDJQUnZqOGhsTHZiMXNBQVdzcFVydXA1TVRhcDZPeTdW?= =?utf-8?B?enhRRVAzdm81T0JUT3BQY2Q4ZVkwc1VrYnJQdkZQVDZxTEdmSEtIOEpocWxR?= =?utf-8?B?OFgyZFZ2YklNay9wQklIZFZIS3RUeURJTk40eElvVmtYWTVyUWpYdWhRNG05?= =?utf-8?Q?NAfWAytzh/K28sAmnGiK2cJRn?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4fea31e-ba7d-47c7-24ae-08da874e65d2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2022 10:33:21.2909 (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: jC7uaYxhyQmM+2YibtV3JHVoij05sKHojiyQu3oJ21IEoo3066x7/S1JTzcYvvJYcHXfmquA16Nmnq8BwCbRlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7473 X-Spam-Status: No, score=-3030.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,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 List-Id: In commit 1212781b35c9 ("ix86: allow HLE store of accumulator to absolute address") I was wrong to exclude 64-bit code. Dropping the check also leads to better diagnostics in 64-bit code ("MOV", after all, isn't invalid with "XRELEASE"). While there also limit the amount of further checks done: The operand type checks that were there were effectively redundant with other ones anyway, plus it's quite fine to also have "mov , %eax" look for the next MOV template (in fact again also improving diagnostics). --- v2: New. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6817,12 +6817,9 @@ match_template (char mnem_suffix) continue; /* xrelease mov %eax, is another special case. It must not match the accumulator-only encoding of mov. */ - if (flag_code != CODE_64BIT - && i.hle_prefix + if (i.hle_prefix && t->base_opcode == 0xa0 - && t->opcode_modifier.opcodespace == SPACE_BASE - && i.types[0].bitfield.instance == Accum - && (i.flags[1] & Operand_Mem)) + && t->opcode_modifier.opcodespace == SPACE_BASE) continue; /* Fall through. */ --- a/gas/testsuite/gas/i386/x86-64-hle-intel.d +++ b/gas/testsuite/gas/i386/x86-64-hle-intel.d @@ -425,6 +425,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 20 01 lock xacquire and BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f0 f3 20 01 lock xrelease and BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f3 88 01 xrelease mov BYTE PTR \[rcx\],al +[ ]*[a-f0-9]+: f3 88 04 25 78 56 34 12 xrelease mov BYTE PTR (ds:)?0x12345678,al +[ ]*[a-f0-9]+: 67 f3 88 04 25 21 43 65 87 xrelease mov BYTE PTR \[eiz\*1\+0x87654321\],al [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f3 f0 08 01 xrelease lock or BYTE PTR \[rcx\],al @@ -476,6 +478,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 66 21 01 lock xacquire and WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: f0 f3 66 21 01 lock xrelease and WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f3 89 01 xrelease mov WORD PTR \[rcx\],ax +[ ]*[a-f0-9]+: 66 f3 89 04 25 78 56 34 12 xrelease mov WORD PTR (ds:)?0x12345678,ax +[ ]*[a-f0-9]+: 67 66 f3 89 04 25 21 43 65 87 xrelease mov WORD PTR \[eiz\*1\+0x87654321\],ax [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f3 f0 09 01 xrelease lock or WORD PTR \[rcx\],ax @@ -527,6 +531,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 21 01 lock xacquire and DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f0 f3 21 01 lock xrelease and DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f3 89 01 xrelease mov DWORD PTR \[rcx\],eax +[ ]*[a-f0-9]+: f3 89 04 25 78 56 34 12 xrelease mov DWORD PTR (ds:)?0x12345678,eax +[ ]*[a-f0-9]+: 67 f3 89 04 25 21 43 65 87 xrelease mov DWORD PTR \[eiz\*1\+0x87654321\],eax [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f3 f0 09 01 xrelease lock or DWORD PTR \[rcx\],eax @@ -578,6 +584,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 48 21 01 lock xacquire and QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f0 f3 48 21 01 lock xrelease and QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f3 48 89 01 xrelease mov QWORD PTR \[rcx\],rax +[ ]*[a-f0-9]+: f3 48 89 04 25 78 56 34 12 xrelease mov QWORD PTR (ds:)?0x12345678,rax +[ ]*[a-f0-9]+: 67 f3 48 89 04 25 21 43 65 87 xrelease mov QWORD PTR \[eiz\*1\+0x87654321\],rax [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f3 f0 48 09 01 xrelease lock or QWORD PTR \[rcx\],rax --- a/gas/testsuite/gas/i386/x86-64-hle.d +++ b/gas/testsuite/gas/i386/x86-64-hle.d @@ -424,6 +424,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 20 01 lock xacquire and %al,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 20 01 lock xrelease and %al,\(%rcx\) [ ]*[a-f0-9]+: f3 88 01 xrelease mov %al,\(%rcx\) +[ ]*[a-f0-9]+: f3 88 04 25 78 56 34 12 xrelease mov %al,0x12345678 +[ ]*[a-f0-9]+: 67 f3 88 04 25 21 43 65 87 xrelease mov %al,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or %al,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or %al,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 08 01 xrelease lock or %al,\(%rcx\) @@ -475,6 +477,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 66 21 01 lock xacquire and %ax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 66 21 01 lock xrelease and %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f3 89 01 xrelease mov %ax,\(%rcx\) +[ ]*[a-f0-9]+: 66 f3 89 04 25 78 56 34 12 xrelease mov %ax,0x12345678 +[ ]*[a-f0-9]+: 67 66 f3 89 04 25 21 43 65 87 xrelease mov %ax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f3 f0 09 01 xrelease lock or %ax,\(%rcx\) @@ -526,6 +530,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 21 01 lock xacquire and %eax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 21 01 lock xrelease and %eax,\(%rcx\) [ ]*[a-f0-9]+: f3 89 01 xrelease mov %eax,\(%rcx\) +[ ]*[a-f0-9]+: f3 89 04 25 78 56 34 12 xrelease mov %eax,0x12345678 +[ ]*[a-f0-9]+: 67 f3 89 04 25 21 43 65 87 xrelease mov %eax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or %eax,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or %eax,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 09 01 xrelease lock or %eax,\(%rcx\) @@ -577,6 +583,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 48 21 01 lock xacquire and %rax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 48 21 01 lock xrelease and %rax,\(%rcx\) [ ]*[a-f0-9]+: f3 48 89 01 xrelease mov %rax,\(%rcx\) +[ ]*[a-f0-9]+: f3 48 89 04 25 78 56 34 12 xrelease mov %rax,0x12345678 +[ ]*[a-f0-9]+: 67 f3 48 89 04 25 21 43 65 87 xrelease mov %rax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or %rax,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or %rax,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 48 09 01 xrelease lock or %rax,\(%rcx\) --- a/gas/testsuite/gas/i386/x86-64-hle.s +++ b/gas/testsuite/gas/i386/x86-64-hle.s @@ -442,6 +442,8 @@ _start: .byte 0xf0; .byte 0xf2; andb %al,(%rcx) .byte 0xf0; .byte 0xf3; andb %al,(%rcx) xrelease movb %al,(%rcx) + xrelease movb %al,0x12345678 + xrelease addr32 movb %al,0x87654321 xacquire lock orb %al,(%rcx) lock xacquire orb %al,(%rcx) xrelease lock orb %al,(%rcx) @@ -496,6 +498,8 @@ _start: .byte 0xf0; .byte 0xf2; andw %ax,(%rcx) .byte 0xf0; .byte 0xf3; andw %ax,(%rcx) xrelease movw %ax,(%rcx) + xrelease movw %ax,0x12345678 + xrelease addr32 movw %ax,0x87654321 xacquire lock orw %ax,(%rcx) lock xacquire orw %ax,(%rcx) xrelease lock orw %ax,(%rcx) @@ -550,6 +554,8 @@ _start: .byte 0xf0; .byte 0xf2; andl %eax,(%rcx) .byte 0xf0; .byte 0xf3; andl %eax,(%rcx) xrelease movl %eax,(%rcx) + xrelease movl %eax,0x12345678 + xrelease addr32 movl %eax,0x87654321 xacquire lock orl %eax,(%rcx) lock xacquire orl %eax,(%rcx) xrelease lock orl %eax,(%rcx) @@ -604,6 +610,8 @@ _start: .byte 0xf0; .byte 0xf2; andq %rax,(%rcx) .byte 0xf0; .byte 0xf3; andq %rax,(%rcx) xrelease movq %rax,(%rcx) + xrelease movq %rax,0x12345678 + xrelease addr32 movq %rax,0x87654321 xacquire lock orq %rax,(%rcx) lock xacquire orq %rax,(%rcx) xrelease lock orq %rax,(%rcx) From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20063.outbound.protection.outlook.com [40.107.2.63]) by sourceware.org (Postfix) with ESMTPS id 910EE3839801 for ; Fri, 26 Aug 2022 10:33:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 910EE3839801 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cQO7OHsF4CC3zIyrQHkwk/evEDVoVA3H5zJIeC9YOXzdGqujYKxm3dHqicFZPhv+mx7eCUx1UFUB3s7rrh/aM8zzCidi/IXIkStsp6pUbi7dMSW+DJUTnXQ1mzUj/Ih5d8L4CP10j68kCwWRWvEsO7epk3kf5IpYYdnvNW7HJoIlt8bTXDJNoVzTLum+659OaE0QMCHRo4m35bFrKa9gN+ZyXxJAefWpzbwFhvQoHwmWaVS6Jv9VlrmCwmlEuQBAQtr9YSYhDt4pyNgRH1InSfI8OL2AmiKLOf0zEs3Ix+Q4ioz+MwC72MYSTRNdWsdxVsY/CtcFnYcuWUVTkZndXw== 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=mSbRlbwJiaAXTkwZiqqkEF05uEssDE84hbRC3VSxj9g=; b=WW6RQWUOySxaa5QbrS1lE6ZnjWv8Jsbcv6DBoeLTnEj9JbTBDuLtRth2EqmQRYGhXiNJfs1MajO2RmVYn1wKYoutyvGKUeLWG0dkyz8RXex2cwh4XfPDDNy/qLgzaybl9YzGRYabFtaBiFcBPyQVfM5o8jtvnRzb1kZXcIxSYUlT9Ri86TZGsesMRoMLmnhadjVdUQpCRS/wdTKm/dEBq8bGuuLpZkuX37GKwHPPrZcQFpImN61/z26qYMt2jxT39DxXmf0Y7rr0+/MmOgaiyV1Ac8w6oj17WlxMApTxRiqD9VjTY8alPWvw/xOrY1YCV+Ls3a+kdgFn4/ghKu4lWQ== 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 AM8PR04MB7473.eurprd04.prod.outlook.com (2603:10a6:20b:1d0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Fri, 26 Aug 2022 10:33:21 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5566.015; Fri, 26 Aug 2022 10:33:21 +0000 Message-ID: <5823f182-dd09-da7c-f35f-25855f0a0727@suse.com> Date: Fri, 26 Aug 2022 12:33:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: [PATCH v2 6/7] x86-64: allow HLE store of accumulator to absolute 32-bit address Content-Language: en-US To: Binutils References: <4a27fbde-d2b2-e293-d09e-9709bc5b9792@suse.com> From: Jan Beulich In-Reply-To: <4a27fbde-d2b2-e293-d09e-9709bc5b9792@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0122.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:94::6) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a4fea31e-ba7d-47c7-24ae-08da874e65d2 X-MS-TrafficTypeDiagnostic: AM8PR04MB7473:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SQ6OmOzfV/0v9c6B369o2rjWaK2qSxHKHJmYdW6EqgaoBrDmynfnv5/ncE06AymNspelNF/rIeYOLmT+YFpOtXfkzScyL8DYkJGfSEQoTKfd3HrD2qWcDU1ysyg2Djosq1Oc71bmmdNxG6GBTlxC8EV2u2MwcRzMTLFeE32EUcRc90jpiCRtF+VTP4o0HnqcWoABlfz/oT46KiTXZAapHQ4MK+cfssMSRWxeiscRIQi2Vm0yMD+yjy7/TdN8b+Il2JHZto/BbIsLPs5nBo4Hs4PwOyD7AEDWO6rTB94JKKX2XFM/ryB2OeLySpZ9OojzMeZbnY+DzPOmm0MP5AMzEsKvIc7nbxqdiDhCLvPNngP2QLyds+BnTKSq9GPmMBCerNjl2jugBCBH7CVA1TrxecL+67sQY4P2RGu5V/vY3H6kAg8SKs1BdlCEwfSi1Yw3Q6GG9X20IRU+H8WBD9ru3yrgariG/Uiyn6txNd8XF31iyaSN+M8zG0LYELWOvkLbCt2q+0Si/N9nFvp24SEW3o7sjjCTleDe1tDP881Gru/kr/r4A3nQ9RF0HrxbkyubHd8HLjJxEv1m7OKeYGkH4x6DbiQzAjynkA66oKx7fafKCJO2KcYy5XqKZ5+57NcWaGRWcK+4+3IaKrfrK8k6U/NJ+m1slce8kdts0mHhMVMtP1cr96BSzDHJGYYw4TNcwys+jXSrYA8/M++zgCW1DcxmQFOvS8vRsku18wvr1TGVJjvFBqAQq2AblXRvU7jahlBAAdlAElx4lXT6OUgWq28NnQaLCbVTLflKcc8EUR0= 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:(13230016)(346002)(39860400002)(376002)(136003)(396003)(366004)(83380400001)(6486002)(41300700001)(66946007)(2616005)(4326008)(66476007)(36756003)(186003)(66556008)(31686004)(8676002)(6512007)(31696002)(38100700002)(26005)(86362001)(5660300002)(6916009)(2906002)(8936002)(478600001)(316002)(6506007)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VkZzMGJIN2NiVDZWTjNmMk1YUmFlYUZ2Q2VYWlRmSFFFVzN1ZnoyZVdIR05C?= =?utf-8?B?dThEY1g5QmxJeWplTlVIRkJwclVuWVJnM3phVEJvUDJPWVFOVkpDMXREUFUx?= =?utf-8?B?QzJtbThBUmhDclRQby94eENZdlVVK1M5K0kxdFMxMktQV0E2QjN6TmlIdmRo?= =?utf-8?B?ZDFJSzU5SEM4MVY1Vnk2alhYMm5rVTRMNHVZYVBDZFFZdzZrTGIxdlM4a3Jj?= =?utf-8?B?ZElmbHNBRGkxTUwycWtaQlBvdzJKVVpDOVp1bTBtNVNRUm1uaTJzQVZtd01u?= =?utf-8?B?bFBXZXhlVStZVWVYNHNLVU9QNUVmR0hucXYyclJRdkN4czUxQndycGZFeHRy?= =?utf-8?B?U1VKN3lmWmxZSWZiZ1pIQS83UFdUWWh5M3RaaXhBSUdUOStsSWhPdlZaVkpr?= =?utf-8?B?MXNaN3JFM2U0Ri90eEVlVngxd0lmald6TDd1WHFDTUQ5K1Bia1NpTWZOVFlZ?= =?utf-8?B?SXZuWXdMbGZhQms1M3NxUmhMOEVodzlIQ0NDYmxGMjdwNk4vcVdEUjF0Z3lj?= =?utf-8?B?dVpxdUIxcTh1blY1ZU1ZbGkxc2VwWjBJNDhkdWlaOGtxWWFwTndBYjNsMkpG?= =?utf-8?B?dVRHalQvZlYvdy9GUURHblVEQWVxMmdEUS8wWHc1S2xrc0JLalV6ck5jZ0JW?= =?utf-8?B?akFVMkdDckJhd1EvMnl0Vml0eE1xUklETzkzekluWWNUdG9DWXM5OFJkajVZ?= =?utf-8?B?RFVsZGtXSjRNaTlSUXBqY1U3bXRabU5TZGxML0p6V0dMV3NabW0xZFZkaXA2?= =?utf-8?B?ZzlUdTVtSzY2MnE4V2w3WGQ1dEZIZFllcHhTdXorRDA1Ly9QNlNxQjFFQmVq?= =?utf-8?B?eTNBS1laUXhjeDUvNTBqUGZWQldwcHhnVDNwZlpnMFF4aTFnQTBWL0ZaS2d4?= =?utf-8?B?eHE2UkhoQmkwRWVJVEhGZHpCa1hVZ2ZzbU9OOURVWlVwdy90VGN6eE96WTFo?= =?utf-8?B?RzBLekxpM2RnK1lPbUZSTUhlNTA4TzhpQjh5RWpXUGVOQmduekhKVEdvQ2Jo?= =?utf-8?B?cTFEakZDUHVOdkprSlhlcE9iRFJ5eHk4V3U3QlpWZU9uSEJxMGRuVGs0TWVv?= =?utf-8?B?S21QblVDV1pyaHpkTlNwbCtxbW1YbmhiT0w2YkNzd3lVc3U2S3RIR1BlS3hH?= =?utf-8?B?SUpaOUIxbUsxMkUwaHNENHdOREtGdDVaUnE4US8wZWhIampydU1naW9XLzhW?= =?utf-8?B?clBwU1lGRlJOVGtrTE82NEdrQ2JEUnpvOEpLYnhCNVo2MFhLbW9QSGMyQndw?= =?utf-8?B?dHNKSzJmV0Z2cDFiV2dvQzM5NjlHZFY3bVczS3IxNUdjNDZkeXYwWG1MLzdE?= =?utf-8?B?TEJiVmZTaDNVWkxISy91d3BNT044WUMzMld1OWxhZHUwZGRKTjNxcTVxcCtI?= =?utf-8?B?T3cveU8xOS8vODB1ZWFDNEYwUEFyU3pwNE9tWWdCSWIwemZjRHEyMmM2QzhP?= =?utf-8?B?SkRwV0pZdmF6Wk1NbEMxKzFrTTJqNWREd3J5c3hUdnVtTlNWYVNZSEhmK2ww?= =?utf-8?B?elJpZGw5ZGk3K3RxQ21uRVJtS0JGZC85MG1TOVQ0R1pJNlovaHBqWmxVczV1?= =?utf-8?B?ZUFVU0RjU3J2V3JXNFVUMjgzSDRuL2VtNDUxM0t0dzgzVU5sR0p0SmhmNGFt?= =?utf-8?B?T2dLNzBLUDd0WlI0Z2x4Q3U5YmZnQnVuYjJEZExldy80NkhmMHRIb1hTOUg1?= =?utf-8?B?VlZ2WFMxNHYzMW9lMDF5QWh5R0wra3FMdkRyRFNsUWI5ZHhva3FPUldxeHE5?= =?utf-8?B?M093YlNuRFNqRWgxak1PUWlSWmRrRTZyVEhBaUJSMWkwMXdFNFZuZTR0NlJD?= =?utf-8?B?ZllGQ3JBTnpCOTFCck9Zc3R2RmRQUjBOZXRaYW9ORWltK3g1d3JSWnA2MjBF?= =?utf-8?B?TXhVdThVeVRleXlSMkxuQkZCTGdtQlkxVVJ2YnNuWDhaUHlBNE5YQ21ZOFZ0?= =?utf-8?B?UXRYNnlDVTZ2cmNzeDJQUnZqOGhsTHZiMXNBQVdzcFVydXA1TVRhcDZPeTdW?= =?utf-8?B?enhRRVAzdm81T0JUT3BQY2Q4ZVkwc1VrYnJQdkZQVDZxTEdmSEtIOEpocWxR?= =?utf-8?B?OFgyZFZ2YklNay9wQklIZFZIS3RUeURJTk40eElvVmtYWTVyUWpYdWhRNG05?= =?utf-8?Q?NAfWAytzh/K28sAmnGiK2cJRn?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4fea31e-ba7d-47c7-24ae-08da874e65d2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2022 10:33:21.2909 (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: jC7uaYxhyQmM+2YibtV3JHVoij05sKHojiyQu3oJ21IEoo3066x7/S1JTzcYvvJYcHXfmquA16Nmnq8BwCbRlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7473 X-Spam-Status: No, score=-3030.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, 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-List-Received-Date: Fri, 26 Aug 2022 10:33:25 -0000 Message-ID: <20220826103319.o0c9qjNDNVHeuSszlW1r6dOJ4C8pYkD3ogBwZKxd8Wc@z> In commit 1212781b35c9 ("ix86: allow HLE store of accumulator to absolute address") I was wrong to exclude 64-bit code. Dropping the check also leads to better diagnostics in 64-bit code ("MOV", after all, isn't invalid with "XRELEASE"). While there also limit the amount of further checks done: The operand type checks that were there were effectively redundant with other ones anyway, plus it's quite fine to also have "mov , %eax" look for the next MOV template (in fact again also improving diagnostics). --- v2: New. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6817,12 +6817,9 @@ match_template (char mnem_suffix) continue; /* xrelease mov %eax, is another special case. It must not match the accumulator-only encoding of mov. */ - if (flag_code != CODE_64BIT - && i.hle_prefix + if (i.hle_prefix && t->base_opcode == 0xa0 - && t->opcode_modifier.opcodespace == SPACE_BASE - && i.types[0].bitfield.instance == Accum - && (i.flags[1] & Operand_Mem)) + && t->opcode_modifier.opcodespace == SPACE_BASE) continue; /* Fall through. */ --- a/gas/testsuite/gas/i386/x86-64-hle-intel.d +++ b/gas/testsuite/gas/i386/x86-64-hle-intel.d @@ -425,6 +425,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 20 01 lock xacquire and BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f0 f3 20 01 lock xrelease and BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f3 88 01 xrelease mov BYTE PTR \[rcx\],al +[ ]*[a-f0-9]+: f3 88 04 25 78 56 34 12 xrelease mov BYTE PTR (ds:)?0x12345678,al +[ ]*[a-f0-9]+: 67 f3 88 04 25 21 43 65 87 xrelease mov BYTE PTR \[eiz\*1\+0x87654321\],al [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or BYTE PTR \[rcx\],al [ ]*[a-f0-9]+: f3 f0 08 01 xrelease lock or BYTE PTR \[rcx\],al @@ -476,6 +478,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 66 21 01 lock xacquire and WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: f0 f3 66 21 01 lock xrelease and WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f3 89 01 xrelease mov WORD PTR \[rcx\],ax +[ ]*[a-f0-9]+: 66 f3 89 04 25 78 56 34 12 xrelease mov WORD PTR (ds:)?0x12345678,ax +[ ]*[a-f0-9]+: 67 66 f3 89 04 25 21 43 65 87 xrelease mov WORD PTR \[eiz\*1\+0x87654321\],ax [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or WORD PTR \[rcx\],ax [ ]*[a-f0-9]+: 66 f3 f0 09 01 xrelease lock or WORD PTR \[rcx\],ax @@ -527,6 +531,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 21 01 lock xacquire and DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f0 f3 21 01 lock xrelease and DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f3 89 01 xrelease mov DWORD PTR \[rcx\],eax +[ ]*[a-f0-9]+: f3 89 04 25 78 56 34 12 xrelease mov DWORD PTR (ds:)?0x12345678,eax +[ ]*[a-f0-9]+: 67 f3 89 04 25 21 43 65 87 xrelease mov DWORD PTR \[eiz\*1\+0x87654321\],eax [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or DWORD PTR \[rcx\],eax [ ]*[a-f0-9]+: f3 f0 09 01 xrelease lock or DWORD PTR \[rcx\],eax @@ -578,6 +584,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 48 21 01 lock xacquire and QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f0 f3 48 21 01 lock xrelease and QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f3 48 89 01 xrelease mov QWORD PTR \[rcx\],rax +[ ]*[a-f0-9]+: f3 48 89 04 25 78 56 34 12 xrelease mov QWORD PTR (ds:)?0x12345678,rax +[ ]*[a-f0-9]+: 67 f3 48 89 04 25 21 43 65 87 xrelease mov QWORD PTR \[eiz\*1\+0x87654321\],rax [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or QWORD PTR \[rcx\],rax [ ]*[a-f0-9]+: f3 f0 48 09 01 xrelease lock or QWORD PTR \[rcx\],rax --- a/gas/testsuite/gas/i386/x86-64-hle.d +++ b/gas/testsuite/gas/i386/x86-64-hle.d @@ -424,6 +424,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 20 01 lock xacquire and %al,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 20 01 lock xrelease and %al,\(%rcx\) [ ]*[a-f0-9]+: f3 88 01 xrelease mov %al,\(%rcx\) +[ ]*[a-f0-9]+: f3 88 04 25 78 56 34 12 xrelease mov %al,0x12345678 +[ ]*[a-f0-9]+: 67 f3 88 04 25 21 43 65 87 xrelease mov %al,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or %al,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 08 01 xacquire lock or %al,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 08 01 xrelease lock or %al,\(%rcx\) @@ -475,6 +477,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 66 21 01 lock xacquire and %ax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 66 21 01 lock xrelease and %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f3 89 01 xrelease mov %ax,\(%rcx\) +[ ]*[a-f0-9]+: 66 f3 89 04 25 78 56 34 12 xrelease mov %ax,0x12345678 +[ ]*[a-f0-9]+: 67 66 f3 89 04 25 21 43 65 87 xrelease mov %ax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f2 f0 09 01 xacquire lock or %ax,\(%rcx\) [ ]*[a-f0-9]+: 66 f3 f0 09 01 xrelease lock or %ax,\(%rcx\) @@ -526,6 +530,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 21 01 lock xacquire and %eax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 21 01 lock xrelease and %eax,\(%rcx\) [ ]*[a-f0-9]+: f3 89 01 xrelease mov %eax,\(%rcx\) +[ ]*[a-f0-9]+: f3 89 04 25 78 56 34 12 xrelease mov %eax,0x12345678 +[ ]*[a-f0-9]+: 67 f3 89 04 25 21 43 65 87 xrelease mov %eax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or %eax,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 09 01 xacquire lock or %eax,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 09 01 xrelease lock or %eax,\(%rcx\) @@ -577,6 +583,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f0 f2 48 21 01 lock xacquire and %rax,\(%rcx\) [ ]*[a-f0-9]+: f0 f3 48 21 01 lock xrelease and %rax,\(%rcx\) [ ]*[a-f0-9]+: f3 48 89 01 xrelease mov %rax,\(%rcx\) +[ ]*[a-f0-9]+: f3 48 89 04 25 78 56 34 12 xrelease mov %rax,0x12345678 +[ ]*[a-f0-9]+: 67 f3 48 89 04 25 21 43 65 87 xrelease mov %rax,0x87654321\(,%eiz,1\) [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or %rax,\(%rcx\) [ ]*[a-f0-9]+: f2 f0 48 09 01 xacquire lock or %rax,\(%rcx\) [ ]*[a-f0-9]+: f3 f0 48 09 01 xrelease lock or %rax,\(%rcx\) --- a/gas/testsuite/gas/i386/x86-64-hle.s +++ b/gas/testsuite/gas/i386/x86-64-hle.s @@ -442,6 +442,8 @@ _start: .byte 0xf0; .byte 0xf2; andb %al,(%rcx) .byte 0xf0; .byte 0xf3; andb %al,(%rcx) xrelease movb %al,(%rcx) + xrelease movb %al,0x12345678 + xrelease addr32 movb %al,0x87654321 xacquire lock orb %al,(%rcx) lock xacquire orb %al,(%rcx) xrelease lock orb %al,(%rcx) @@ -496,6 +498,8 @@ _start: .byte 0xf0; .byte 0xf2; andw %ax,(%rcx) .byte 0xf0; .byte 0xf3; andw %ax,(%rcx) xrelease movw %ax,(%rcx) + xrelease movw %ax,0x12345678 + xrelease addr32 movw %ax,0x87654321 xacquire lock orw %ax,(%rcx) lock xacquire orw %ax,(%rcx) xrelease lock orw %ax,(%rcx) @@ -550,6 +554,8 @@ _start: .byte 0xf0; .byte 0xf2; andl %eax,(%rcx) .byte 0xf0; .byte 0xf3; andl %eax,(%rcx) xrelease movl %eax,(%rcx) + xrelease movl %eax,0x12345678 + xrelease addr32 movl %eax,0x87654321 xacquire lock orl %eax,(%rcx) lock xacquire orl %eax,(%rcx) xrelease lock orl %eax,(%rcx) @@ -604,6 +610,8 @@ _start: .byte 0xf0; .byte 0xf2; andq %rax,(%rcx) .byte 0xf0; .byte 0xf3; andq %rax,(%rcx) xrelease movq %rax,(%rcx) + xrelease movq %rax,0x12345678 + xrelease addr32 movq %rax,0x87654321 xacquire lock orq %rax,(%rcx) lock xacquire orq %rax,(%rcx) xrelease lock orq %rax,(%rcx)