From patchwork Wed Oct 5 07:25:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 1718 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp475226wrs; Wed, 5 Oct 2022 00:26:49 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5ssOuUWnKPjEknxYUMCHhwLRyYrJ2yc+eIntfJbvlNVQQZz7KRqxuHSjTX6fUKttcGOf5W X-Received: by 2002:a17:907:7b9e:b0:783:10cb:2826 with SMTP id ne30-20020a1709077b9e00b0078310cb2826mr22918786ejc.208.1664954809624; Wed, 05 Oct 2022 00:26:49 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id jg22-20020a170907971600b0078cf86b12e5si6257244ejc.221.2022.10.05.00.26.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Oct 2022 00:26: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=OuSFZg47; 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 E62323857831 for ; Wed, 5 Oct 2022 07:26:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E62323857831 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1664954797; bh=IzzhW9VcDv/dhN+cZN/ISKt+HCtyP3GIgJsAWf7+1S0=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=OuSFZg47YiJuKfMQwvAESz+3W/VN2IkVwViUlCDhmOz12A3AzwD0B/hxrukFecGYC Z3Kw7UqU7WtGVyfAzjhbyQJ8u3XtzfToQPTIOrLIIJQ600q2cQp5hCzPkYwfxAA0bW 0R0qL968hFH0mDeNdAPb1s1vO8flEiUhdJq4rhf4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2089.outbound.protection.outlook.com [40.107.22.89]) by sourceware.org (Postfix) with ESMTPS id 9C42A3857C71 for ; Wed, 5 Oct 2022 07:25:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9C42A3857C71 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5ZOx5kYFhB3avUgxaAT6I8grlrAcqmbyhxNYBPjd0kF0k+hydEvMAXNtZgGRL1QZWcUoqIyBRtS45cp+D4o7q7jvx2VbfwsbecU1Ul4Jgd1RBhwMwF3g0IGciIEh+Jacs0sUi5wRAPCcK3aU6lTlOqshV+0E534clWHWqAeqlfvbBMBt11Bwj5mZ7WevI0yw7ZQ5Z0cTNlm08zaZFaJK/xC7z/0ErQJfHOQFoeObzxdtlyIv8fcjVAHTAtzF/YiAlMIpRVNptpgncVj07S3mef4U6NSy9g6pwCFs4WiYuHkTxdEHFIsCgXMk8IiTcX6PBk7znNm/hbHuV8uKh/j2g== 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=IzzhW9VcDv/dhN+cZN/ISKt+HCtyP3GIgJsAWf7+1S0=; b=CaUdRSF4GuYr1YrSTUClcsi6p8sczL5Mf4twZtExSYQciwLZXVefUi58LKVc8D/+soJ8/BpBHttUBKZW/BXC6zqgWdW/QadKGL9GVbjvt1BCPvz8vL6RuPEvud8Xu2ZFVusKrUNb8Sbyr/C5m4PdJIPvDQDx8jP5jYZDUwLnzvW1gReDIacz2rW/cwjsKke1bXvM1BCU6OzHmzjAWwElSRR3HeIHz/S14epcqXqbdT60Px4FHkNMz+0jlbDPaohV0M1FSApIT4WiBhA0DbGfYbMfPQQyIEz7OMWDqHI9gK7fagnf36uX3rfcMtqlnsPqH3FRIR3CW9vmQfrTEN81rw== 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 AS8PR04MB7751.eurprd04.prod.outlook.com (2603:10a6:20b:2a2::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.32; Wed, 5 Oct 2022 07:25:29 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a%7]) with mapi id 15.20.5676.031; Wed, 5 Oct 2022 07:25:29 +0000 Message-ID: Date: Wed, 5 Oct 2022 09:25:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: [PATCH v3 6/7] x86-64: allow HLE store of accumulator to absolute 32-bit address Content-Language: en-US To: Binutils References: <20e2773a-2e47-869b-1900-709f8ad4cd6b@suse.com> In-Reply-To: <20e2773a-2e47-869b-1900-709f8ad4cd6b@suse.com> X-ClientProxiedBy: FR3P281CA0028.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::19) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB7751:EE_ X-MS-Office365-Filtering-Correlation-Id: 8792f836-236d-4600-510f-08daa6a2c613 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p7kPfshmQZ/SY+44X/wVlGQWiKfR8Jskw2I/Bgat6QQWRb86OahHaz7ecsNfqnURTO5lcMB4s22in5WalV8fhfPeQHQdlGy/VYDJ5hiTsnHs/4p9mPxSxQROCTeatnEUKf/X3/tdds4a/U9Xhj5Uyhz68MUHNPnEAFgVXazjZaj2TnOUXp21Mx31A5aIdUQYqcD2I89PBIBrMceiA7+lv7CpipMVGHNolh7D+I3pUULulK6pYshjit0YqfbxjbVmgokw04w9LMkYEAXE6U3vNdEQJcaOIXR91T2WmL1HldlbpZ5VkalmtjaukZ/XGEXauiwlkXZCTcBZxj/iy5UKi4tC8zdMFHudUgIm4M8f/tgiPFvk9KCMjbICB7ZugpdlO4eTviWlFvNbnvGtZZJ5GgL19rIuq9mVpX8TZPVnRG3M6EUdW4pawXpeX8nR6IQcgHA/0VmmZHbZfwgBNp82cK4Pw32VcltxrlGhRr8sK/CFPdaSacx9I8NGiC9HZw+lcvx2w7zukNvDueCrX62BQLSYVpM3tp7TGgW4pVTE2URZpw+17Ehk2tHzJG4I4bGpmj+QeJJofJgZee6lDXOk7g4G7UlkLWSF38dZ03DbeDXYX16xjvmbeI+rBLZcxm6bb/sZuWK0mqizfwg2+rM/a0/F1CIoixjD/0pfgOA3ZVA3aL94750x9QJ6uPRcCQstzFifXIXB61lTPTRqjGN/s/A8Hy/5prGaC/yPx2KB5FBmd5j7y3b9LsfRA4h1hucBybHAzZLRSn6fY3F1+G56HRIgb63c/tVnHra9ZMGefK8= 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)(376002)(136003)(346002)(366004)(396003)(39860400002)(451199015)(31686004)(36756003)(31696002)(2906002)(5660300002)(2616005)(83380400001)(38100700002)(186003)(6666004)(6506007)(6512007)(6486002)(478600001)(26005)(66946007)(66476007)(4326008)(316002)(86362001)(8676002)(66556008)(41300700001)(8936002)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?a/yJvunmxkGxaA6Uvf0AqV2d7hnR?= =?utf-8?q?o4iZf+CTOpKKlMetBja/Bi7/CJAJwpd914YixO5gN+V0e5RRK/hIWq/Xc9oc0j20s?= =?utf-8?q?sAd8YtcKiHyw8jh9jkjHAWJ8kz2d8817cSO5BRV8wYH35kLQS3Z2U0nSjXr+EBxOB?= =?utf-8?q?aFL8Yk/ydKnKfoJp1IxlWJKmk4SXKk3Futl7cxncSKJ2TN2UbyWNjAeMUpzwFpDDB?= =?utf-8?q?PzijL1Cp7Ospi0IA2u3isjVY9gOQ+H1TUiUKuF06Q4EeJ36oqU7oR/CB8HyoHdAuE?= =?utf-8?q?kYqBR0LFnK2suJDUn8PunA4ZoMdPCV08JuAtHe0RYdfT2veq2VqS40RsZno3f5hGv?= =?utf-8?q?ET3nwGgl+jFi4O/qL/7lEAdLR8TZvHiNo8gOmkwklMpNqjOi+W4AZ0uSC98HHo1g1?= =?utf-8?q?5v7imlPhPqISIJcahyteqOPYurL55mjgNICMOuMj2UD/+VsYB9ePUZTm7i5HI4UcF?= =?utf-8?q?8AmHd0UsNC3NwrGgm9xnuzLnMuZDpIy3GxcYH/3588vDUrYzc3HDiHDkNcFzH7p5q?= =?utf-8?q?+IhOnalL9JdbuGbbWKjnOLmWu6bO2/EYOe381rvKvw7sePDhCNUhmrLwP8OHNeya3?= =?utf-8?q?Co534wQ+qwPqSbCStXgTPtzU2ubApczdq/6ed1sam1n3yRTNUGXVnPUknyg71Yx3I?= =?utf-8?q?r1ILroArDYMV6ChlQV35/yAtYMb1udFVt2GQ9q3x4eCxIoyo5sGI70vekrd1s4HOs?= =?utf-8?q?7vUnzZMqAJWyAzrvXezB9qLZtBngC3fbCyWSn3Ko6iCBNK+z3jq5JM4p0/aKXFoca?= =?utf-8?q?TR9gqbzPwaXgtMsemofG4Lp0VxWKO1gOCxIHddb5RkX7Ra8bqyjZP5yZVKoWP0uOp?= =?utf-8?q?1B1GqW868uin/aF+rXV6HkcrJzc9WxMV6nN2JvXvpZRJ8VC0jef/+y7eW3Po5Qnt4?= =?utf-8?q?U9WFJBFTl16UPV3kha434EUUn4jPCYLEgOOS54aiKbxauDwXU/NSOmcTqEJbkbHVO?= =?utf-8?q?hCX89S4QHzXuQdU9ltLbrGaDP0NZWru/SkYDu2SN0qLwPqHEYrEhFlCWgbjGXwJod?= =?utf-8?q?E6O9BVjMfEOUNWrFr8MUndOleJlgcHf5qNicagDFxA6yikgO3KvdC36P2re1dhfU6?= =?utf-8?q?uOphDOj04zZKf5Jc0YAYLZn+uYCJ5H2SsrfDeCyIt+8qoNxPlZN5HV7kTtv+oJaRl?= =?utf-8?q?0mXodJeJ8kPg3M/Mpgmd22ySDBWszqvoTftnbX2i9KFZoLDkCrFBthYRBkhcI95GC?= =?utf-8?q?E5qgcIiVYsu9SiOezQIvOnGOPSop7raeV3OK3eJ1Bn/22AdppDJhoriZMgdSYJK9V?= =?utf-8?q?skNms2cG+4R/9Wc+r8B915Cj2hEiKLEUEZ3vQNJKhRdUIperM/GtLu7ZavgsorvoL?= =?utf-8?q?21Be53V8lK9bKEKVTSER9lRmBau+lbx71cG5AlLqsLuAOgx4TY7zBDA2QV5x2tdUv?= =?utf-8?q?Od3+VEm2311Ojd1uli5nLd8Uc8rYRFh6L42UNwdK62X/Q/02xOVBEaO1DIZ77UjRV?= =?utf-8?q?O5oUA1RZCjRLoORnvRlkKdimu7Bgs4uO9K9AaCUytajdvV946AwtYmI0bT1YuEV3E?= =?utf-8?q?lUNaeSTXREUH?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8792f836-236d-4600-510f-08daa6a2c613 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2022 07:25:29.1287 (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: YsfgJDQ7hAAXPGaTYsmnCNZnYCi7OG16mkRtNDsHl72Duz4h+cJpdxKaG3c7tHK0pDSV/9A2siXflwwQaVlzHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7751 X-Spam-Status: No, score=-3029.9 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?1745831654454811690?= X-GMAIL-MSGID: =?utf-8?q?1745831654454811690?= 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 "xrelease 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 @@ -6819,12 +6819,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)