From patchwork Fri Feb 10 08:48:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 55317 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp835441wrn; Fri, 10 Feb 2023 00:48:54 -0800 (PST) X-Google-Smtp-Source: AK7set8Eq8tylD/aaQ1+3cgN0Mv+onkoIok/tP6lnlHsM/G35KjJbDS10geYCchZHWx6rRiTXjv1 X-Received: by 2002:a17:906:1101:b0:88d:72c0:611 with SMTP id h1-20020a170906110100b0088d72c00611mr14240091eja.3.1676018933930; Fri, 10 Feb 2023 00:48:53 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id mv14-20020a170907838e00b008af33d3b821si3843854ejc.462.2023.02.10.00.48.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 00:48:53 -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=wgvR0jU2; 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 CC27B3858C31 for ; Fri, 10 Feb 2023 08:48:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CC27B3858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676018932; bh=7kTVTc4U4OZVktvR/6vkAx7Dj998qBbac+wTaiLwWlg=; 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=wgvR0jU2QAgPMVRX22ZTwIHHMSVJwGPqf+vQ2ZT2BqEMreR+KX3vV9wwxFdTwZ/OO cctR/YO5hM9geL5SoYG4PGvPfd++0B8lut/LSpOqlbMY6h57iWNf6+gC8WYhYh1F81 LxI07f/LuasuIfImACBavHrjICyjIJ5yMc9Y+X0A= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2073.outbound.protection.outlook.com [40.107.13.73]) by sourceware.org (Postfix) with ESMTPS id 9C801385B513 for ; Fri, 10 Feb 2023 08:48:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C801385B513 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lOCTiQEmgRw/sxT4TXSfrRlu7/NAbNmNcsMJv2VPw93wMrwYg+8erFgOX93SOON87kPGwgBX0Oba1xtO9mUU0+pPZPx38QfFY5EiYtwRJuIfeQclxWiJ85GEyxDPAJ8KMCdLRuZ7AM/5jjyqdBT2enIQSGeDv2E+XERMI/3gnvazHzb98FGE6q7mvCvbvAcrKHtXDEmB5lJc9zjMEkOxjFgE048YliByWT3zdCUlwETvXfQ2XzuBXkrACHBqsTGg6EHbpGA0fK5sCmxA3cHHo5lXbx57IPvllAUM7klnGgzGFuoKldRRl6A5IQ5NEZwU4orCrhadms5C/04tZ5mF+g== 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=7kTVTc4U4OZVktvR/6vkAx7Dj998qBbac+wTaiLwWlg=; b=jSAurLUkv/c56eYA/nmd5P43P06DEvB6T8HG3QGHhGpgSMhnn+xDd9GW5iyA/g4BHhBmTJS75iFZD86lFxLFHgpWrVN46tNkV103CDqQD5AxXfYln76DwM6OElAWKJmzVR5b+zBog9oswdEhFJYDZddBsI1KDO3gsQfxqEt+MIaForH/gkvPDAC939y/0VSTdgciKr39UJGtEkW3TgWqij+qiZF6glHgERAIX4nYQsTFx5jzx3WvmESMa+Q1NhcvOGqcbGESVuem6XqnR3zGtywKbUPqbaXx6zHvTHk64W7EeRdJqWFzkQsZElXbwIMCr+e0En4Pg0FZI8O7F+5+QA== 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 DB8PR04MB6889.eurprd04.prod.outlook.com (2603:10a6:10:11d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 08:48:41 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6086.019; Fri, 10 Feb 2023 08:48:40 +0000 Message-ID: Date: Fri, 10 Feb 2023 09:48:39 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH 1/4] x86-64: LAR and LSL don't need REX.W Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> In-Reply-To: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> X-ClientProxiedBy: FR3P281CA0104.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB8PR04MB6889:EE_ X-MS-Office365-Filtering-Correlation-Id: d608c901-b842-4bdf-a3aa-08db0b439bc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GYTE4f985n5zImbayVDCCPenh4xmgJVYMf8E0LhAwLy1Li99P04DSsOXKKe0bAQlVYuQ7rW3SBwvELb/KM4dhFiTA1sShcNEUTmfa8aT2WaSaN49cThXoY/03x38FpS/+ymzwZCVt8BrxBe31Pe9oQThkp9ZL8qE6oo6/y2UhMYjVq05WqXnkqIIzXNN2gvV3ZKo5BKOGf9pJJbbs4RC6wqJay3VwgjpV0Dcm6v2Y+batjcRIrqVF3GXlloS0zJ4ulGrEOuSMN59C5gWCaGKXbnRLfSwIV7okkFiOIwP1n3TGf+Luf9bIEYw2sIkcNpR8TmlEOIcD+4Nf1IaaC5a0wZeXv340nueZ9QlX/xjfXTbqTi+r0k86FWCTDCXsQSRg5ERjN0xlATb1TPBveBzOPYnPE+wkEDPQLIRi0EKkNo2WliPpB7Z7No3WRLoCnwcohBDlpevjx+/vhI/loZDIv8ZXe8l4gCyii5ITsGsLd21BvMvrPnq7ZtXh9S1kxEERxVsbLwZSfMd2RHVrNN10Quy0RTVuUqIwmey/U5MtDwbHrZr2UXNvz/HoB155RuL7Rm65PnG0XxpaQrMMzXBnEUiMbLt3nsfRJhRX7Yiq+6jduNr8hLa515Zy38pS59ZdIv+Nz2ww9FlGeSUbtyQUjqAnVRFP1bhZiLp1S/bhaqzw8ewzTPq+ZgKBSsBxPQHfvyxZQUPZkHb14tlKIJL/t7PVmYPJUqzEx1fAX0dWKg= 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)(376002)(136003)(39860400002)(346002)(396003)(366004)(451199018)(8936002)(6506007)(5660300002)(38100700002)(316002)(6486002)(2616005)(26005)(36756003)(186003)(41300700001)(66556008)(6512007)(4326008)(8676002)(6916009)(86362001)(66476007)(66946007)(31696002)(478600001)(31686004)(2906002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?UdSrZyLvIz4HIygzChOO1eBwg9g6?= =?utf-8?q?YGUKrLxUl3vhx0MMAXgJNem743aqgl0Jf3w0GwskAsNbzMpFa8weQQE25z0UFejxz?= =?utf-8?q?iLf2DmY0evMEi5uIIlYkcmTNF3D/OvRdhuJHbQsrOb+iZQUhufDZlB6GZGR28Si9Q?= =?utf-8?q?b3txPebcIcjFCa9xYYGq+DKnC1eZbmsd4lOOwCIj/7evQCYUlkmbmLuLJndD1mUQr?= =?utf-8?q?s32cMBHkR1lhG7dzlHfGLxNW7V5qQKmCDozPU9+LRgPqgBaOay47Qwi6h6oGx0arw?= =?utf-8?q?vF6SE0qusIpHjWjy0lQA7ouF6rklQvhRcMsBg7el5xTpLwiTJEIvWEdYdIqgKxw5l?= =?utf-8?q?GRdkSq4YFF5uoO3Lbb8OwhiyDM13ETzW3XeovCc8HoJw2lfIdI0jMUpv3KjQJvaez?= =?utf-8?q?oq1dTKdfqJCzQRVOn8xXCgPkHVgnwA03jTBEJslxeU+naYbWu7vaRu5OKm2M+tvD9?= =?utf-8?q?0Mj6uPqA9J+VMahu0diIr3pcyUkaWomyeIzwmjTpSgHWdFIQhxd7E4SfotcK1zRvU?= =?utf-8?q?cl92ukw+DO1BicS+SRQakIwoPLo4Hxg6iLhKp5u/6rrh4a29grbwbjGaxA6sHalRi?= =?utf-8?q?Hyg0H6aN9MqUPXPVZL0IeB1mTRtaSa23ypF7m7djt/O2EoXknmc8oxAwLGaCAKXcN?= =?utf-8?q?BbqHXOcuAKLSybuAHMn8ZzUHhZuo7JCpeS9Xer+XnYOWBiN2DxEy9ITvFrszKLCTy?= =?utf-8?q?KyOVVmY5kZwBiUH1IeuHZHgBSyrt2Q9GA4iQFxab6W+iugFqtUyUXgFPmX/EEigus?= =?utf-8?q?gADaOqbSwfOkSxQkT6NySLz3botpHvqDu/r+k9k/ev3dP5cV8j6NwL78bDk+7bBMM?= =?utf-8?q?m9RJHKYw+fmsOYU4WMVXHVGoZQDUzCAR+qBulcWs7BYgx16AqvMcauCtQHvlEkOWg?= =?utf-8?q?MbfbR3ajNPcIbU5oy5MGK/zrdYyQGXWZ5uzZE5JBMOT7dK/3folpfroSxCmLTG68u?= =?utf-8?q?17QTep2fiQg4Qzf6WtYbtbiEC8KyKaODlLUyOnwUYBzD+bAwquozUWnWNP8jhtgRr?= =?utf-8?q?FjMEWdyNNdsxGU5RafkWuqrt7bZk3PXleUrmFQu27o5/+QuueXIsNw23djeDvwZ4G?= =?utf-8?q?UBejzxepONbKw7ckUh2nABKIYLllzAc6XtkmfCHp8PsaeMYX9omCFH1cg6BApQO6y?= =?utf-8?q?Qm+r2Wh0XdZLNxpc1locA4s6vbVhJnnQB+zlT4TOw0TNlX6X8dGwTYr2+IPhVJ24U?= =?utf-8?q?2ERirZjuSZiBBH26vUE+makcOTK4aJn7ZVArUr9d/NdLwY5zLNhoHW34AW2RiGJSc?= =?utf-8?q?ASG6ewFE+N1taYJJ8jUy1J/MPW5D3UvHaILq5zNuJlqhM/LtwBrptWCDa2Bzx2xnb?= =?utf-8?q?qsmkW+msgFV6PImVJNBR9JkmbkbfBXR7DaSz2A34n9CMmSfPKsH1aeGWKtSQAHAdp?= =?utf-8?q?GqkD0KUp8WL3fl6aIWOMSLEhMcggTW7v0ZfPRIAsu53dEvIg1SmnaDwIzrXCO5dZr?= =?utf-8?q?UjJwv28LfvM02emJuI6IbK3I+s90X8btYKLabLtBl1p6Zs+9H3tZXEj+e5a3RIHMy?= =?utf-8?q?XEvcsa+ZX5bp?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d608c901-b842-4bdf-a3aa-08db0b439bc5 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 08:48:40.8911 (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: JiHe0ETrwCB+pBfsQkmcupa6PsvmCuvkqOsqrDGcPvWyqM092zgbKym4kT37B6olCZTz4VrDLFus4tSYI+FWQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6889 X-Spam-Status: No, score=-3028.5 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?1757433229728218130?= X-GMAIL-MSGID: =?utf-8?q?1757433229728218130?= Just like we suppress emitting REX.W for e.g. MOV from/to segment register, there's also no need for it for LAR and LSL - these can only ever return 32-bit values and hence always zero-extend their results anyway. While there also drop the redundant Word from the first operand of the second template each - this is already implied by Reg16. --- a/gas/testsuite/gas/i386/x86_64-intel.d +++ b/gas/testsuite/gas/i386/x86_64-intel.d @@ -260,34 +260,34 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 48 89 0c 25 00 00 00 00 mov QWORD PTR (ds:)?0x0,rcx [ ]*[a-f0-9]+: 66 0f 02 d2 lar dx,dx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar rdx,rdx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar rdx,rdx +[ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx +[ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] -[ ]*[a-f0-9]+: 48 0f 02 12 lar rdx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl rdx,rdx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl rdx,rdx +[ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx +[ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] -[ ]*[a-f0-9]+: 48 0f 03 12 lsl rdx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 66 0f 02 d2 lar dx,dx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar rdx,rdx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar rdx,rdx +[ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx +[ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] -[ ]*[a-f0-9]+: 48 0f 02 12 lar rdx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl rdx,rdx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl rdx,rdx +[ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx +[ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] -[ ]*[a-f0-9]+: 48 0f 03 12 lsl rdx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] #pass --- a/gas/testsuite/gas/i386/x86_64.d +++ b/gas/testsuite/gas/i386/x86_64.d @@ -260,34 +260,34 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 48 89 0c 25 00 00 00 00 mov %rcx,0x0 [ ]*[a-f0-9]+: 66 0f 02 d2 lar %dx,%dx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar %rdx,%rdx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar %rdx,%rdx +[ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx +[ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx -[ ]*[a-f0-9]+: 48 0f 02 12 lar \(%rdx\),%rdx +[ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl %rdx,%rdx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl %rdx,%rdx +[ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx +[ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx -[ ]*[a-f0-9]+: 48 0f 03 12 lsl \(%rdx\),%rdx +[ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx [ ]*[a-f0-9]+: 66 0f 02 d2 lar %dx,%dx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar %rdx,%rdx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx -[ ]*[a-f0-9]+: 48 0f 02 d2 lar %rdx,%rdx +[ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx +[ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx -[ ]*[a-f0-9]+: 48 0f 02 12 lar \(%rdx\),%rdx +[ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl %rdx,%rdx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx -[ ]*[a-f0-9]+: 48 0f 03 d2 lsl %rdx,%rdx +[ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx +[ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx -[ ]*[a-f0-9]+: 48 0f 03 12 lsl \(%rdx\),%rdx +[ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx #pass --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -567,16 +567,16 @@ nop, 0x90, 0, NoSuf|RepPrefixOk, {} // Protection control. arpl, 0x63, i286|No64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex } -lar, 0xf02, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } -lar, 0xf02, i286, Modrm|No_bSuf|No_sSuf, { Reg16|Word|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +lar, 0xf02, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } +lar, 0xf02, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } lgdt, 0xf01/2, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } lgdt, 0xf01/2, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } lidt, 0xf01/3, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } lidt, 0xf01/3, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } lmsw, 0xf01/6, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } -lsl, 0xf03, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } -lsl, 0xf03, i286, Modrm|No_bSuf|No_sSuf, { Reg16|Word|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +lsl, 0xf03, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } +lsl, 0xf03, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } sgdt, 0xf01/0, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } From patchwork Fri Feb 10 08:49:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 55318 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp835813wrn; Fri, 10 Feb 2023 00:49:58 -0800 (PST) X-Google-Smtp-Source: AK7set8cM6GCxpkPZML6fcglhjSpWFwu6af1Iha2EdhRapq9W0JInkYh5DGT8IPLzdSTRch9cOTO X-Received: by 2002:a17:906:7f98:b0:884:3174:119d with SMTP id f24-20020a1709067f9800b008843174119dmr16797039ejr.14.1676018998700; Fri, 10 Feb 2023 00:49:58 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id mf17-20020a1709071a5100b0088e0dfe3707si4355478ejc.601.2023.02.10.00.49.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 00:49:58 -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="tcTh/Y7d"; 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 A79B1385B50C for ; Fri, 10 Feb 2023 08:49:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A79B1385B50C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676018997; bh=jFRcF13hoC5ptSe5TTdYYF+NpI16hgHYqVZdYBKZLTA=; 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=tcTh/Y7d2BJ4w3H6kwKMTP034czODEtXOqOvyxP1oSXpya/2BQBEx7BvBFsraxWeB Wc0s0iFkTbe2AMg77IngzpCe1vJ/ufvNypc40wE/UFyhDLnznbqdPHe5+qKGJJgTYq FYD4AkIB9rw7NiJkJpWP9UQldobI1gphCcwoPvII= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2076.outbound.protection.outlook.com [40.107.21.76]) by sourceware.org (Postfix) with ESMTPS id 65286385B524 for ; Fri, 10 Feb 2023 08:49:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 65286385B524 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dtJPUCEXi1ZN5giX2nvZlYCTtF5rDu7zEX+2lfHKXq4yPszNqb7YUfToPZSaslQ8DdWnRh2kXUfGZ4RmjE20/8FunHYInX+7DNb+g9WYBJ4ScW4H/7FT03xTmSgheyot5vHyjkVmGHqSI6PLlk8LI4ZGFoHhi1e5PwT5ugJshbSuSf+NqpuA4AEZHbUblAY1Da9IQQOytpYC14A34wzQT6fNahOQ4aHSX5A/SRjzdzaA8mIrnp2XVs3JFHZWRzdiAYpVF3xlJ1io/xD8ozZIKSzLOCKTM1AdUYuJjed48ieOtPqsv6MUUFkCOaKfK+NsRqTxBBZqGUN3oPPpM/Duag== 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=jFRcF13hoC5ptSe5TTdYYF+NpI16hgHYqVZdYBKZLTA=; b=gLlSHIXop+b4K0HzM7/ZifA9XhhUzzpPIe5lsLrCAWeKcYGtGX6uNBmEGCUT1YOHoAMKF2XftAYg90ibVP/kLW7lgzCuNuuaNaZ2fFjGIjs1SweROfUoSjoa4PPSCywDO0qDMMAkD0G1Q0vWHhCFvwUMlakxD8MhX+i5NKMkwdF0kTNCwWw1+wumKuoG+dspznjGH0/5LgUNM9AvTugUaBeLgmI1fCw1vSBWlGyhT9gn1/Yvh0YQxsrXVNip74ErsILFOicPGeaW/1+7hBNn8auJuvsft/O3e7pGN2PYfFnHG+5SVEMfdVz5PtME1O5F0qoTgEE2g22/aAUSjGNMNA== 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 DB8PR04MB6889.eurprd04.prod.outlook.com (2603:10a6:10:11d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 08:49:20 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6086.019; Fri, 10 Feb 2023 08:49:20 +0000 Message-ID: <623497d9-1367-d446-1cce-f9b0fe177699@suse.com> Date: Fri, 10 Feb 2023 09:49:18 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH 2/4] x86: have insns acting on segment selector values allow for consistent operands Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> In-Reply-To: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> X-ClientProxiedBy: FR3P281CA0191.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a4::9) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB8PR04MB6889:EE_ X-MS-Office365-Filtering-Correlation-Id: 55b76752-005a-4220-2a67-08db0b43b342 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vWUDyRael96PgB401ilCV9i4cDepTzXoTgRZgIysSM/9MMUAyb5BpiY7DyreJs9t4VeXf7o+et01MAFX1vnSUrPt2jhEi+kEcTX7oPgQ9in1QGQPUAUS5MqzhYGaQY7Jc0qCXEZr9nbVH7N2nL1DyYMJhhFwQBPnDBwkB+hkghkT/8eWDePlOY0vUNGXU+ZPYv4BgeTwum5PCKAMcAcjMvtwPGwYGrWzuNYiTUbOVo4+4dM6uCin1B1uP3qiz+W8pzlFzb1YPwP6xNft7T/NCVgvhdYl7mrumWqjiPX/5Ix9L7u7hu0fV7O5YYQyZqDJ4ZEnEfzLZis/vwhMEYuaLX/b6T4Z2I/lW5jWA/yvFc9afgE+jJ7tA/dWFE61+Ay2H4BAfwj/TG5eR+YdD9jZhekzkH4h9ns0szbIUoqrCkCk+AjoBihcRsjYshL9ptoKEQJa0LKDFzhENwe7UrlyEIzRoQMo8Zaxba5Yv1cYA+aLdcmImOEb+bBCKDjmWQz4myUXu14fFKh5fCBQC3C5C+b+IppXEtKle6hck5ULvhMpa4w0Ail07oc9NPDezLZIn01S0TzYap7HrskG4GDXMa+sEaHESaSuulbRaeswplivIyQcBleVtKyZQwm2zIq+d8rXZBdEfoUYKiiSJUEI2fayboi+cjtwdDvQ7t/xBqRm8JeWbdzVCuCott1OYjGJCPfZsBSCb1XKO4YY8F+2LH8LsThZG2ZAcgKSVm+0SHo= 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)(376002)(136003)(39860400002)(346002)(396003)(366004)(451199018)(8936002)(6506007)(5660300002)(38100700002)(316002)(6486002)(2616005)(26005)(36756003)(186003)(41300700001)(66556008)(6512007)(4326008)(8676002)(6916009)(86362001)(66476007)(66946007)(31696002)(478600001)(31686004)(30864003)(2906002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?QQ0hlaOaOxnZyYcoFnBTfkVYfbwy?= =?utf-8?q?hnr3YSN3lCg6HcmGNFRQt4caTUbQNAbUDxvGisxZ3hOBOrRHH2dVf8FGVU7/RZ5ZE?= =?utf-8?q?hU9UxmAhltwIYHDxSSpAQ4mllo4c6Ph4ahbUAKldhdrm5HYFPoqIBZNrrkazFsFe2?= =?utf-8?q?geKF/NopqmgvElUMhovXGNsY4rz/S8V/t5W2qJSDRMUVTq2fgIcLNst2voZdHCAH0?= =?utf-8?q?y7EB6tncuWKE/ANfRYhCK+ZXH8J0AqAU8eTJ1idmC4JxKPaQ4L4P/PEXRLUo1YUL2?= =?utf-8?q?tTYzpMh5tmnCdrphgRJgG/b+r5DsYRGWAYskQZLWFVQ99LzNI+Hk2j6fAz9EIoBzt?= =?utf-8?q?bvWwf+vPB8blHoUIIwK6AaEDD5gqMylyqLnFd6W8MxR9pLxQOxhQJkb9iw0kNox/u?= =?utf-8?q?C7aBjK3INXDe+GcFTw9iTaVohDugzIr/yr3BGKH/7q0q/sMFSpmkl9GQ/TDUOr0uU?= =?utf-8?q?l5NrZakthA9IQMC23q5e+hYylILpWn1GITh6Gw9bJpAzmtwFIL8ezG5suSv+5o7s2?= =?utf-8?q?MzbqEzz9/v4I9cRewmSVsCQ8isLZBHyE+2BCQGJWUTRXbu+n0FniVpf7C7a90UBiF?= =?utf-8?q?Tg7LMMrQkFkwObMIiHOUS1oF7DqwbpDCutNcjE5PJEfWKn5tiGz+o7fGZIy1GNH7j?= =?utf-8?q?oh5Q+kmHqqLhMivBLNLmltX8J20yTpYufGnwFI+pIOIbVIuRUL90ocmIZvlti0+8s?= =?utf-8?q?GEyKArRi0O3v4Y2P7iISqoddfa4AqcxiuCGLiJfIcWnIlkIhwQLc9DI3IiL1WpFPn?= =?utf-8?q?WvjRBmx0vOkOs1Hjlp56+L96pW9f+0L5MeRoLo5/5ZKWkN1+oGMz8dY4I2Z9qb+14?= =?utf-8?q?4krjBrJtI09Lpxigxh+MzspxBrufhgpGwtW6PSuvQP8LVRYmiGnAVUdbsBVUkYaI2?= =?utf-8?q?eC0mTQbK12cZM+ctrlIDcFQZCh71B7RJ3QUnK3ctYQ8PZmSppG8YIctZsUOwDp7pt?= =?utf-8?q?ckdvHyn1fDZwcJCGkl/28lVwJMiXuBMQT4T1S7fYvkTLnk1LlVsMsU8YM1T0Dw4RW?= =?utf-8?q?KlsctkRPnrBfolVIDoP8pDlYVAiUDAdV1bx4z8pBZVpCoIX+nAX8cLYHBNWBXiRtr?= =?utf-8?q?6SkXFN9rRbHY+x9EQFHDn+/MNKE/8ZAuBJCq6ePpWTOign5PLRxbrWPURJXUFVcnC?= =?utf-8?q?e9I+tAAA5XG8b9rEHtE3eSePfFI4PzB+7Wmgy+2RilL61nxmVaC4Ns2+/4bRhgyRA?= =?utf-8?q?AoAaAsOEYttoPWLwwXJKKdETQ5g82uKKd4KSCgwwmbzQnTQp/D4NPL30YAgx8CDlJ?= =?utf-8?q?kk1ZpyzLSlQzIjsSmOIgoOCFK/kgvy5U9qMxXeB2hr3Cf71SFqnX89YPWhmqgr9zy?= =?utf-8?q?X6NvV+4IyMUKVnYG3aeQ7PLTcFZ0H9P2s6M69gr3UbAS1BRbgRjzssRGOQSCZI2sy?= =?utf-8?q?re0QdD2pWuuK+Nx8kilOie0DRGAGcEBhRG5ZF1lttA8QlTZ4Lh4BPoq1hRuu8jusm?= =?utf-8?q?vCLyd9k0aHr7DaoUySaVmLK4puU/m6N5PdPnmfFDsluCQ2I+3JEgNijA9DORV/cio?= =?utf-8?q?RNs1VmgQVH09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55b76752-005a-4220-2a67-08db0b43b342 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 08:49:20.3104 (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: SSD3+cK/3N/vSENgUbDnrKwJdbwswo+/KC3iQmHwONZIqAzah+Kt/RVMhh++iSo+ogkCIvp35OoAix0QILJYbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6889 X-Spam-Status: No, score=-3027.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SCC_10_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no 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?1757433297175979627?= X-GMAIL-MSGID: =?utf-8?q?1757433297175979627?= While MOV to/from segment register as well as selector storing insns already permit 32- and 64-bit GPR operands, selector loading insns and ARPL do not. Split templates accordingly. --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -694,7 +694,8 @@ i386_intel_operand (char *operand_string if (got_a_float == 2) /* "fi..." */ suffix = SHORT_MNEM_SUFFIX; else if (current_templates->start->mnem_off != MN_lar - && current_templates->start->mnem_off != MN_lsl) + && current_templates->start->mnem_off != MN_lsl + && current_templates->start->mnem_off != MN_arpl) suffix = WORD_MNEM_SUFFIX; break; --- a/gas/testsuite/gas/i386/i386.d +++ b/gas/testsuite/gas/i386/i386.d @@ -61,24 +61,62 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f b6 00 movzbl \(%eax\),%eax [ ]*[a-f0-9]+: 0f b7 00 movzwl \(%eax\),%eax [ ]*[a-f0-9]+: 0f c3 00 movnti %eax,\(%eax\) +[ ]*[a-f0-9]+: 63 ca arpl %cx,%dx +[ ]*[a-f0-9]+: 63 ca arpl %cx,%dx +[ ]*[a-f0-9]+: 63 0a arpl %cx,\(%edx\) +[ ]*[a-f0-9]+: 63 0a arpl %cx,\(%edx\) [ ]*[a-f0-9]+: 66 0f 02 d2 lar %dx,%dx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%edx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%edx\),%edx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%edx\) [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%edx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%edx\),%edx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 22 verr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 2a verw \(%edx\) +[ ]*[a-f0-9]+: 63 d1 arpl %dx,%cx +[ ]*[a-f0-9]+: 63 d1 arpl %dx,%cx +[ ]*[a-f0-9]+: 63 11 arpl %dx,\(%ecx\) +[ ]*[a-f0-9]+: 63 11 arpl %dx,\(%ecx\) +[ ]*[a-f0-9]+: 63 11 arpl %dx,\(%ecx\) +[ ]*[a-f0-9]+: 63 11 arpl %dx,\(%ecx\) [ ]*[a-f0-9]+: 66 0f 02 d2 lar %dx,%dx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%edx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%edx\),%edx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%edx\) +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%edx\) [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%edx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%edx\),%edx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 22 verr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 22 verr \(%edx\) +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 2a verw \(%edx\) +[ ]*[a-f0-9]+: 0f 00 2a verw \(%edx\) #pass --- a/gas/testsuite/gas/i386/i386.s +++ b/gas/testsuite/gas/i386/i386.s @@ -68,25 +68,75 @@ movzx eax, word ptr [eax] movnti dword ptr [eax], eax .att_syntax + arpl %cx,%dx + arpl %ecx,%edx + arpl %cx,(%edx) + arpl %ecx,(%edx) + lar %dx,%dx lar %dx,%edx lar %edx,%edx lar (%edx),%dx lar (%edx),%edx + + lldt %dx + lldt %edx + lldt (%edx) + lsl %dx,%dx lsl %dx,%edx lsl %edx,%edx lsl (%edx),%dx lsl (%edx),%edx + ltr %dx + ltr %edx + ltr (%edx) + + verr %dx + verr %edx + verr (%edx) + + verw %dx + verw %edx + verw (%edx) + .intel_syntax noprefix + arpl cx,dx + arpl ecx,edx + arpl [ecx],dx + arpl [ecx],edx + arpl word ptr [ecx],dx + arpl word ptr [ecx],edx + lar dx,dx lar edx,dx lar edx,edx lar dx,WORD PTR [edx] lar edx,WORD PTR [edx] + + lldt dx + lldt edx + lldt [edx] + lldt word ptr [edx] + lsl dx,dx lsl edx,dx lsl edx,edx lsl dx,WORD PTR [edx] lsl edx,WORD PTR [edx] + + ltr dx + ltr edx + ltr [edx] + ltr word ptr [edx] + + verr dx + verr edx + verr [edx] + verr word ptr [edx] + + verw dx + verw edx + verw [edx] + verw word ptr [edx] --- a/gas/testsuite/gas/i386/i386-intel.d +++ b/gas/testsuite/gas/i386/i386-intel.d @@ -62,24 +62,62 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f b6 00 movzx eax,BYTE PTR \[eax\] [ ]*[a-f0-9]+: 0f b7 00 movzx eax,WORD PTR \[eax\] [ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[eax\],eax +[ ]*[a-f0-9]+: 63 ca arpl dx,cx +[ ]*[a-f0-9]+: 63 ca arpl dx,cx +[ ]*[a-f0-9]+: 63 0a arpl (WORD PTR )?\[edx\],cx +[ ]*[a-f0-9]+: 63 0a arpl (WORD PTR )?\[edx\],cx [ ]*[a-f0-9]+: 66 0f 02 d2 lar dx,dx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[edx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[edx\] +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[edx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[edx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[edx\] +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 63 d1 arpl cx,dx +[ ]*[a-f0-9]+: 63 d1 arpl cx,dx +[ ]*[a-f0-9]+: 63 11 arpl (WORD PTR )?\[ecx],dx +[ ]*[a-f0-9]+: 63 11 arpl (WORD PTR )?\[ecx],dx +[ ]*[a-f0-9]+: 63 11 arpl (WORD PTR )?\[ecx],dx +[ ]*[a-f0-9]+: 63 11 arpl (WORD PTR )?\[ecx],dx [ ]*[a-f0-9]+: 66 0f 02 d2 lar dx,dx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[edx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[edx\] +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[edx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[edx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[edx\] +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[edx\] +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[edx\] #pass --- a/gas/testsuite/gas/i386/x86_64.d +++ b/gas/testsuite/gas/i386/x86_64.d @@ -266,6 +266,10 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%rdx\) [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx @@ -274,6 +278,18 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 22 verr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 2a verw \(%rdx\) [ ]*[a-f0-9]+: 66 0f 02 d2 lar %dx,%dx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx [ ]*[a-f0-9]+: 0f 02 d2 lar %edx,%edx @@ -282,6 +298,11 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 02 12 lar \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx [ ]*[a-f0-9]+: 0f 02 12 lar \(%rdx\),%edx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt %dx +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 12 lldt \(%rdx\) [ ]*[a-f0-9]+: 66 0f 03 d2 lsl %dx,%dx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx [ ]*[a-f0-9]+: 0f 03 d2 lsl %edx,%edx @@ -290,4 +311,19 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 03 12 lsl \(%rdx\),%dx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx [ ]*[a-f0-9]+: 0f 03 12 lsl \(%rdx\),%edx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 da ltr %dx +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 1a ltr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 e2 verr %dx +[ ]*[a-f0-9]+: 0f 00 22 verr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 22 verr \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 ea verw %dx +[ ]*[a-f0-9]+: 0f 00 2a verw \(%rdx\) +[ ]*[a-f0-9]+: 0f 00 2a verw \(%rdx\) #pass --- a/gas/testsuite/gas/i386/x86_64.s +++ b/gas/testsuite/gas/i386/x86_64.s @@ -320,6 +320,12 @@ mov tr0, rcx lar (%rdx),%dx lar (%rdx),%edx lar (%rdx),%rdx + + lldt %dx + lldt %edx + lldt %rdx + lldt (%rdx) + lsl %dx,%dx lsl %dx,%edx lsl %dx,%rdx @@ -329,6 +335,21 @@ mov tr0, rcx lsl (%rdx),%edx lsl (%rdx),%rdx + ltr %dx + ltr %edx + ltr %rdx + ltr (%rdx) + + verr %dx + verr %edx + verr %rdx + verr (%rdx) + + verw %dx + verw %edx + verw %rdx + verw (%rdx) + .intel_syntax noprefix lar dx,dx lar edx,dx @@ -338,6 +359,13 @@ mov tr0, rcx lar dx,WORD PTR [rdx] lar edx,WORD PTR [rdx] lar rdx,WORD PTR [rdx] + + lldt dx + lldt edx + lldt rdx + lldt [rdx] + lldt word ptr [rdx] + lsl dx,dx lsl edx,dx lsl rdx,dx @@ -346,3 +374,21 @@ mov tr0, rcx lsl dx,WORD PTR [rdx] lsl edx,WORD PTR [rdx] lsl rdx,WORD PTR [rdx] + + ltr dx + ltr edx + ltr rdx + ltr [rdx] + ltr word ptr [rdx] + + verr dx + verr edx + verr rdx + verr [rdx] + verr word ptr [rdx] + + verw dx + verw edx + verw rdx + verw [rdx] + verw word ptr [rdx] --- a/gas/testsuite/gas/i386/x86_64-intel.d +++ b/gas/testsuite/gas/i386/x86_64-intel.d @@ -266,6 +266,10 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[rdx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx @@ -274,6 +278,18 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[rdx\] [ ]*[a-f0-9]+: 66 0f 02 d2 lar dx,dx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx [ ]*[a-f0-9]+: 0f 02 d2 lar edx,edx @@ -282,6 +298,11 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 02 12 lar dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 02 12 lar edx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 d2 lldt dx +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 12 lldt (WORD PTR )?\[rdx\] [ ]*[a-f0-9]+: 66 0f 03 d2 lsl dx,dx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx [ ]*[a-f0-9]+: 0f 03 d2 lsl edx,edx @@ -290,4 +311,19 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 03 12 lsl dx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] [ ]*[a-f0-9]+: 0f 03 12 lsl edx,WORD PTR \[rdx\] +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 da ltr dx +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 1a ltr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 e2 verr dx +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 22 verr (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 ea verw dx +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[rdx\] +[ ]*[a-f0-9]+: 0f 00 2a verw (WORD PTR )?\[rdx\] #pass --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -566,18 +566,21 @@ nop, 0xf1f/0, Nop, Modrm|No_bSuf|No_sSuf nop, 0x90, 0, NoSuf|RepPrefixOk, {} // Protection control. -arpl, 0x63, i286|No64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex } +arpl, 0x63, i286|No64, RegMem|CheckOperandSize|IgnoreSize|No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32, Reg16|Reg32 } +arpl, 0x63, i286|No64, Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32, Word|Unspecified|BaseIndex } lar, 0xf02, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } lar, 0xf02, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } lgdt, 0xf01/2, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } lgdt, 0xf01/2, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } lidt, 0xf01/3, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } lidt, 0xf01/3, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } -lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } +lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 } +lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex } lmsw, 0xf01/6, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } lsl, 0xf03, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } lsl, 0xf03, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } -ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } +ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 } +ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex } sgdt, 0xf01/0, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex } sgdt, 0xf01/0, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } @@ -590,8 +593,10 @@ smsw, 0xf01/4, i286, Modrm|IgnoreSize|No str, 0xf00/1, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 } str, 0xf00/1, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex } -verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } -verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex } +verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 } +verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex } +verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 } +verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex } // Floating point instructions. From patchwork Fri Feb 10 08:50:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 55319 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp836047wrn; Fri, 10 Feb 2023 00:50:43 -0800 (PST) X-Google-Smtp-Source: AK7set+sa6MHoNTdpCZx/kJRRoXlrffkQAyP7YtUHVdO6hMJyaqBm4cFdHYsH0TJS45JJ7SefHFY X-Received: by 2002:a50:8e17:0:b0:4aa:c4bb:d432 with SMTP id 23-20020a508e17000000b004aac4bbd432mr17126817edw.11.1676019043707; Fri, 10 Feb 2023 00:50:43 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id o16-20020a056402039000b00484e1329439si4860246edv.156.2023.02.10.00.50.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 00:50:43 -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=SHpWszTu; 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 4D147385417E for ; Fri, 10 Feb 2023 08:50:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D147385417E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676019041; bh=+iPru74A7d77BKMqkyx9wbQLOTshTNvWp+6e8mXvooo=; 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=SHpWszTul1oAQbT1MeD1+Q84guUO0UAYrZyP6QR2T+fl7Q073UjFwiO79EUvW/ZsV CFLGlf2G/t2YTeHUxtdMekpnR7zmvVU85ffWMxBbT4YxXIkHHke9SV0XovGctSYK9O Uk/dk5QyRBLl4Ddj4aj5LwGD8zL2aRYHrqcUC2uQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2089.outbound.protection.outlook.com [40.107.21.89]) by sourceware.org (Postfix) with ESMTPS id 99A543858C31 for ; Fri, 10 Feb 2023 08:50:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 99A543858C31 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GcTdSiOj4/fb6xEUaViS9PXNf95jOoGmCbLVwvLWVJ2YqcT0E3ZltbcmAlt4/8dLzQXXTXU7dJqmkezVb27VVBfOServgyMzWVo81FvMQNMzFkPkq15Db7bUm5fTNgSYvoFF76ift7UOdIIlNRrD4tLvb8Rl9EKqEpc5pc9rjnxJCvRUMyzykSTinNA73SES8qKfH2N7vqpdIy71kLQEF00hdqiq/rzGDTPYhY5KD7v7tqRBW1d+BPcRkZ92z6R0guSMXVgDIY5ItH89VuM5e361yyfQQI8b+Q4E7ZgWmSmp1n6qqfYc3Eski/ycprKJELZiGld9C5mgAc6CYZm+vQ== 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=+iPru74A7d77BKMqkyx9wbQLOTshTNvWp+6e8mXvooo=; b=oIXmEpln68H5W6Ct2LJtoAh1caO2WMioCi+10OQhngbgfVeAA1ill1e2VIzjdbWun/yvlnpniX5s1/ql2wxGROHwvTr4+YCHWXy5BT0T+BF80PKKsYe8Ihv148QsM0fAtJbD/y3QKCaOW1I3HsiAmt7Y2dB1RmihZ3e1ZHmFSESXMR8OVh2RsVHlWSKyMcknTELSrsQEW2nBLbLqE0Wqb3MDNhSfC7oZyFNBhUCSCUFyLcju0Ib4PeP09V6UBgV4W4yQCMpQVSLSKovOQhNg5NRgCtVZodrp31pIFgcD21ys/7Rk+J74YRI6QXYRD5m5iPdPx2fENaI1WIl55RmL3w== 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 DB8PR04MB6889.eurprd04.prod.outlook.com (2603:10a6:10:11d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 08:50:27 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6086.019; Fri, 10 Feb 2023 08:50:27 +0000 Message-ID: <3ab09feb-290d-693d-b43f-237022f3f6aa@suse.com> Date: Fri, 10 Feb 2023 09:50:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH 3/4] x86-64: don't permit LAHF/SAHF with "generic64" Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> In-Reply-To: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> X-ClientProxiedBy: FR2P281CA0107.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::10) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB8PR04MB6889:EE_ X-MS-Office365-Filtering-Correlation-Id: db78f114-c5c8-4613-97e2-08db0b43db03 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LWBM4GSMVGhxSubmQf/rqzRFCSU16/MS9x1Z86ZHsU0T9Ta/OJGyVjcC/EwbTENFFYAlBsJv78zrJXQX9UZZy22jfdEqq/ffgs/8DRCcbFi+qwwkEn5kawtKElM0MtYlnJd6Hq+IINlZh5O6yBvlIcHqYywLBJCvJbhCNYFBWbl3I/+/IV2CPF3faCkV3xMedGr7PfSx0OK+xh6t6W5+Arp2FwjiQ0TkVqjL1kiWwUVqwrnOm3tyEr5JZxrpQg7OgpH+7Khrtg/YdMYQwJ9MwTPqvNsmlYxCxfLQ69HG0nACz08ZefbsVbzL6Jf02FzRndDw8IhBRHJTs75ua1MZXGZ3VmZoWW1Ihqg4z0JRAn5mGex2m0Y97UDUnGU7jL6fSRthK3zbEsUNALV7lCeipqgbCIiQ8/DwYjxa+DRNvwQ/VIe15wMajRD3l0va864efMilbDzXz0j7nZBPZHn1FtIWwLd4DkK8uoDYBkrFR43LxDxW2SCuALqj8HlBmYgPH2QoCrbD3Ae+GsfN332agkS0tMxquE97c+cI7WY5zZ7HTbzjZbCJDTMDlmSnbmuDu69HoFga0Rm+y3rCuz+6h4CLgfDuHqhL5wEQjno/LkydN6COeHmAHDRMdFFNQpTJz8XyDCf9mzRSLtdjNPbj2vsRxmnpPl/EymxKBzsvotdVAW8HBYmJFW4s5q3ZywrgFAfTZb8KxOsMFHpsJ3qR4O71ROlC6yDuOzn3/WmGHsU= 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)(376002)(136003)(39860400002)(346002)(396003)(366004)(451199018)(8936002)(6506007)(5660300002)(38100700002)(83380400001)(316002)(6486002)(2616005)(26005)(36756003)(186003)(41300700001)(66556008)(6512007)(4326008)(8676002)(6916009)(86362001)(66476007)(66946007)(31696002)(478600001)(31686004)(30864003)(2906002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?/TqfQ0PFGsvSXSfm2ZhzrJudk71U?= =?utf-8?q?EG4eE3zLgcAdy/V3itge1tqARABEVZepNYM3wKgC2XrS3BSoGjzz1BgQrw0wmo+w9?= =?utf-8?q?43U45ZsYDBmW//bTbwxOP2++R5zvA5JOtsqgh14yPp7UljI5+1NZi8cf5HGyWK0lD?= =?utf-8?q?RN37/bOuetIPCByzieTomIPqYIQWpQko5W0jfFP7OBBDhfxOIHARfwZXNARXsKTTa?= =?utf-8?q?H5+ekamXd+hFJPhwv4uXIsI5M9qWlHqohiUIgbZf3n0WYtv7OOXNISL+yS7btFmLk?= =?utf-8?q?1UIbAGb7CgNuGM+ygIOyM++N4FNSrDMXiSTvnJIh2Kz/DXjYnpYtIjSkSmClgFl5i?= =?utf-8?q?r2xJXKqNuUaXCkgxYDh9NYhzEn6ErPHDcjmVFvgIKZ3FU5je1BOYpCzRwNGutQ2pD?= =?utf-8?q?tAMqGm8M6RM3nExiLMpJ469MaqhI/P64q87FI7tMgKZb9HS+v5VcMcfWQoUl0w3is?= =?utf-8?q?Z26n4SqY9zUX+jU6Nlt7jehHs5QTvVxWdc8Jf7nFeW9v4kRB61a1s7GVxWo4gYNx5?= =?utf-8?q?D5dPOdkBb61q0jdNzdHaZYqVIFsTGFGKjLNCNsGCHkstmqw8q0oB8Q8AZVBPGJr6m?= =?utf-8?q?lbnuW7Z6hjVf7NytJ23qtknV9KMzpjfEAjUZwQpGUO/mY3nZGS/FjWbstX46MgbP3?= =?utf-8?q?h9DukElTeXItCo7ythf2ODp+wC0+sdThJKr5jQ7sJTadAka3CYQSphhfZRURdIbnk?= =?utf-8?q?cohwbr5Usa2rvjC2tOXlDucrNWVhPEsyfodUJhdDRo/drYJGCZfSZX0MQg1DOVALt?= =?utf-8?q?9Ok0qNnk28QMJ4Fngdl2K+rPxa9Yht1CNUYKIP7mxP2lWtYu0ibwlvWLXjGh7tPzv?= =?utf-8?q?B7NeHFGb+gqOUVxvFgSKRhC+ay+fF6mdgu5fri8lbArXB4CNPiUW9EnKb+Id3tkLM?= =?utf-8?q?zu4JiZ9H/3OyhZ1cb+uREQRnSYe3QOsSn0w7vBv+FGOFMCIxc+k95incijQd/uHSC?= =?utf-8?q?hXWr5mLUCW77xeUHSOk3iWhEjbL5pYJK7iVVW+GbROdNLu/er7Ff3/35F7uugr0Ot?= =?utf-8?q?WKozQVP74Nm/AHto56GecYb1NtnODJ1m15yrnSxGTRd8Lyj/1sNuBl7k1QOqcc6hn?= =?utf-8?q?WrduAQL3Ymf8mEbJyQFltypq27mGxyG3cHSqb4a4posoooc0SlAoEAOmIhF0Cmijg?= =?utf-8?q?5sX28tVxMHdYYLGk+o/0GDnW09d0lExJ+uZb9/nty9UpXwNQpv1QU7cpsJpQPQtRn?= =?utf-8?q?oGWtc6vaILwKdBRZ8GlpKUrVPM2k6ihx1S7Z3wxwyf4eWWX005G4vwOtKz/Jt8dan?= =?utf-8?q?WhOI61i70MuN37ajOEyRRV7SAAgorc52lvmkW2+352IGGFCfY0u9AWWC1kv9nw1tq?= =?utf-8?q?oCPdAy21ykVYXknEqDQyGS/VyE4j64qBXhiuNIKBBFEBlUKKOISKHC7gT9QOstICE?= =?utf-8?q?5pyPb4VYl40Bw7YG+kj3ejjUeeJTfM7eAap4DDAVywxjDZdBL9QL6oYOA6egy3cmo?= =?utf-8?q?RaXggjJikzvER3+gw8uakhtguMzytYra8X+igrQRJw6iBQuhgISG464wJCoXsz38M?= =?utf-8?q?KQNiq5RTUNRO?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: db78f114-c5c8-4613-97e2-08db0b43db03 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 08:50:26.9467 (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: LfYdNaxAvqGBphWtlrL3ap/F80K4KDQfrmIs65E23vQUUjolop1wAM87hAUqaAqEOlRRmP6EdVPGj/3RmOCTDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6889 X-Spam-Status: No, score=-3028.5 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?1757433344872270148?= X-GMAIL-MSGID: =?utf-8?q?1757433344872270148?= The feature isn't universally available on 64-bit CPUs. Note that in i386-gen.c:isa_dependencies[] I'm only adding it to models where I'm certain the functionality exists. For Nocona and Core I'm uncertain in particular. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1047,6 +1047,7 @@ static const arch_entry cpu_arch[] = SUBARCH (lwp, LWP, ANY_LWP, false), SUBARCH (movbe, MOVBE, MOVBE, false), SUBARCH (cx16, CX16, CX16, false), + SUBARCH (lahf_sahf, LAHF_SAHF, LAHF_SAHF, false), SUBARCH (ept, EPT, ANY_EPT, false), SUBARCH (lzcnt, LZCNT, LZCNT, false), SUBARCH (popcnt, POPCNT, POPCNT, false), --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -151,6 +151,7 @@ accept various extension mnemonics. For @code{sse4}, @code{avx}, @code{avx2}, +@code{lahf_sahf}, @code{adx}, @code{rdseed}, @code{prfchw}, @@ -1487,7 +1488,7 @@ supported on the CPU specified. The cho @item @samp{.rdrnd} @tab @samp{.f16c} @tab @samp{.avx2} @tab @samp{.bmi2} @item @samp{.lzcnt} @tab @samp{.popcnt} @tab @samp{.invpcid} @tab @samp{.vmfunc} @item @samp{.hle} @tab @samp{.rtm} @tab @samp{.tsx} -@item @samp{.adx} @tab @samp{.rdseed} @tab @samp{.prfchw} +@item @samp{.lahf_sahf} @tab @samp{.adx} @tab @samp{.rdseed} @tab @samp{.prfchw} @item @samp{.smap} @tab @samp{.mpx} @tab @samp{.sha} @tab @samp{.prefetchwt1} @item @samp{.clflushopt} @tab @samp{.xsavec} @tab @samp{.xsaves} @tab @samp{.se1} @item @samp{.avx512f} @tab @samp{.avx512cd} @tab @samp{.avx512er} @tab @samp{.avx512pf} --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -934,6 +934,7 @@ if [gas_64_check] then { run_dump_test "x86-64-arch-2-btver2" run_list_test "x86-64-arch-2-1" "-march=generic64 -I${srcdir}/$subdir -al" run_list_test "x86-64-arch-2-2" "-march=generic64+cx16 -I${srcdir}/$subdir -al" + run_list_test "x86-64-arch-2-3" "-march=generic64+lahf_sahf -I${srcdir}/$subdir -aln" run_dump_test "xmmhi64" run_dump_test "x86-64-xsave" run_dump_test "x86-64-xsave-intel" --- a/gas/testsuite/gas/i386/ilp32/x86-64-arch-2.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-arch-2.d @@ -1,5 +1,5 @@ #source: ../x86-64-arch-2.s -#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm +#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+lahf_sahf+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm #objdump: -dw #name: x86-64 (ILP32) arch 2 #dump: ../x86-64-arch-2.d --- a/gas/testsuite/gas/i386/x86-64-arch-2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2.d @@ -1,4 +1,4 @@ -#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm +#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+lahf_sahf+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm #objdump: -dw #name: x86-64 arch 2 @@ -38,4 +38,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f a7 c0 xstore-rng [ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx [ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx +[ ]*[a-f0-9]+: 9f lahf #pass --- a/gas/testsuite/gas/i386/x86-64-arch-2.s +++ b/gas/testsuite/gas/i386/x86-64-arch-2.s @@ -62,3 +62,5 @@ xstorerng blsr %ecx,%ebx # TBM blcfill %ecx,%ebx +# LAHF/SAHF +lahf --- a/gas/testsuite/gas/i386/x86-64-arch-2-1.l +++ b/gas/testsuite/gas/i386/x86-64-arch-2-1.l @@ -24,6 +24,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -95,3 +96,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# LAHF/SAHF +[ ]*66[ ]+lahf --- a/gas/testsuite/gas/i386/x86-64-arch-2-2.l +++ b/gas/testsuite/gas/i386/x86-64-arch-2-2.l @@ -23,6 +23,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -94,3 +95,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# LAHF/SAHF +[ ]*66[ ]+lahf --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-arch-2-3.l @@ -0,0 +1,93 @@ +.*: Assembler messages: +.*:16: Error: .* +.*:18: Error: .* +.*:20: Error: .* +.*:22: Error: .* +.*:24: Error: .* +.*:26: Error: .* +.*:28: Error: .* +.*:30: Error: .* +.*:32: Error: .* +.*:34: Error: .* +.*:36: Error: .* +.*:38: Error: .* +.*:40: Error: .* +.*:42: Error: .* +.*:44: Error: .* +.*:46: Error: .* +.*:48: Error: .* +.*:50: Error: .* +.*:52: Error: .* +.*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* +.*:60: Error: .* +.*:62: Error: .* +.*:64: Error: .* +[ ]*1[ ]+\.include "x86-64-arch-2\.s" +[ ]*1[ ]+\# Test -march= +[ ]*2[ ]+\.text +[ ]*3[ ]+\# cmov feature * +[ ]*4[ ]+\?\?\?\? 0F44D8 cmove %eax,%ebx +[ ]*5[ ]+\# clflush +[ ]*6[ ]+\?\?\?\? 0FAE38 clflush \(%rax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+\?\?\?\? 0F05 syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+\?\?\?\? 0FFCDC paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+\?\?\?\? F30F58DC addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+\?\?\?\? F20F58DC addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+phaddw %xmm4,%xmm3 +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+phminposuw %xmm1,%xmm3 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+crc32 %ecx,%ebx +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# Xsaveopt +[ ]*32[ ]+xsaveopt \(%rcx\) +[ ]*33[ ]+\# AES +[ ]*34[ ]+aesenc \(%rcx\),%xmm0 +[ ]*35[ ]+\# PCLMUL +[ ]*36[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*37[ ]+\# AES \+ AVX +[ ]*38[ ]+vaesenc \(%rcx\),%xmm0,%xmm2 +[ ]*39[ ]+\# PCLMUL \+ AVX +[ ]*40[ ]+vpclmulqdq \$8,%xmm4,%xmm6,%xmm2 +[ ]*41[ ]+\# FMA +[ ]*42[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*43[ ]+\# MOVBE +[ ]*44[ ]+movbe \(%rcx\),%ebx +[ ]*45[ ]+\# CX16 +[ ]*46[ ]+cmpxchg16b \(%rsi\) +[ ]*47[ ]+\# EPT +[ ]*48[ ]+invept \(%rcx\),%rbx +[ ]*49[ ]+\# RDTSCP +[ ]*50[ ]+rdtscp +[ ]*51[ ]+\# 3DNow or PRFCHW +[ ]*52[ ]+prefetchw 0x1000\(,%rsi,2\) +[ ]*53[ ]+\# SSE4a +[ ]*54[ ]+insertq %xmm2,%xmm1 +[ ]*55[ ]+\# SVME +[ ]*56[ ]+vmload +[ ]*57[ ]+\# ABM/LZCNT +[ ]*58[ ]+lzcnt %ecx,%ebx +[ ]*59[ ]+\# PadLock +[ ]*60[ ]+xstorerng +[ ]*61[ ]+\# BMI +[ ]*62[ ]+blsr %ecx,%ebx +[ ]*63[ ]+\# TBM +[ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# LAHF/SAHF +[ ]*66[ ]+\?\?\?\? 9F lahf --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-arch-2-3.s @@ -0,0 +1 @@ +.include "x86-64-arch-2.s" --- a/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d @@ -1,5 +1,5 @@ #source: x86-64-arch-2.s -#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm +#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+lahf_sahf+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm #objdump: -dw #name: x86-64 arch 2 (lzcnt) #dump: x86-64-arch-2.d --- a/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d @@ -1,5 +1,5 @@ #source: x86-64-arch-2.s -#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw +#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+lahf_sahf+ept+clflush+syscall+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw #objdump: -dw #name: x86-64 arch 2 (prefetchw) #dump: x86-64-arch-2.d --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -67,7 +67,7 @@ static const dependency isa_dependencies { "CORE2", "NOCONA|SSSE3" }, { "COREI7", - "CORE2|SSE4_2|Rdtscp" }, + "CORE2|SSE4_2|Rdtscp|LAHF_SAHF" }, { "K6", "186|286|386|486|586|SYSCALL|387|MMX" }, { "K6_2", @@ -79,7 +79,7 @@ static const dependency isa_dependencies { "AMDFAM10", "K8|FISTTP|SSE4A|ABM" }, { "BDVER1", - "GENERIC64|FISTTP|Rdtscp|CX16|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" }, + "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" }, { "BDVER2", "BDVER1|FMA|BMI|TBM|F16C" }, { "BDVER3", @@ -87,7 +87,7 @@ static const dependency isa_dependencies { "BDVER4", "BDVER3|AVX2|Movbe|BMI2|RdRnd|MWAITX" }, { "ZNVER1", - "GENERIC64|FISTTP|Rdtscp|CX16|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" }, + "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" }, { "ZNVER2", "ZNVER1|CLWB|RDPID|RDPRU|MCOMMIT|WBNOINVD" }, { "ZNVER3", @@ -95,7 +95,7 @@ static const dependency isa_dependencies { "ZNVER4", "ZNVER3|AVX512F|AVX512DQ|AVX512IFMA|AVX512CD|AVX512BW|AVX512VL|AVX512_BF16|AVX512VBMI|AVX512_VBMI2|AVX512_VNNI|AVX512_BITALG|AVX512_VPOPCNTDQ|GFNI|RMPQUERY" }, { "BTVER1", - "GENERIC64|FISTTP|CX16|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|CX16|Clflush|FISTTP|SVME" }, + "GENERIC64|FISTTP|CX16|LAHF_SAHF|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|Clflush|FISTTP|SVME" }, { "BTVER2", "BTVER1|AVX|BMI|F16C|AES|PCLMUL|Movbe|Xsaveopt|PRFCHW" }, { "286", @@ -313,6 +313,7 @@ static bitfield cpu_flags[] = BITFIELD (LM), BITFIELD (Movbe), BITFIELD (CX16), + BITFIELD (LAHF_SAHF), BITFIELD (EPT), BITFIELD (Rdtscp), BITFIELD (FSGSBase), --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -137,6 +137,8 @@ enum CpuMovbe, /* CMPXCHG16B instruction support required. */ CpuCX16, + /* LAHF/SAHF instruction support required (in 64-bit mode). */ + CpuLAHF_SAHF, /* EPT Instructions required */ CpuEPT, /* RDTSCP Instruction support required */ @@ -372,6 +374,7 @@ typedef union i386_cpu_flags unsigned int cputbm:1; unsigned int cpumovbe:1; unsigned int cpucx16:1; + unsigned int cpulahf_sahf:1; unsigned int cpuept:1; unsigned int cpurdtscp:1; unsigned int cpufsgsbase:1; --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -264,8 +264,10 @@ cld, 0xfc, 0, NoSuf, {} cli, 0xfa, 0, NoSuf, {} clts, 0xf06, i286, NoSuf, {} cmc, 0xf5, 0, NoSuf, {} -lahf, 0x9f, 0, NoSuf, {} -sahf, 0x9e, 0, NoSuf, {} +lahf, 0x9f, No64, NoSuf, {} +lahf, 0x9f, LAHF_SAHF, NoSuf, {} +sahf, 0x9e, No64, NoSuf, {} +sahf, 0x9e, LAHF_SAHF, NoSuf, {} pushf, 0x9c, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf, {} pushf, 0x9c, x64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|NoRex64, {} popf, 0x9d, No64, DefaultSize|No_bSuf|No_sSuf|No_qSuf, {} From patchwork Fri Feb 10 08:51:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 55320 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp836426wrn; Fri, 10 Feb 2023 00:52:01 -0800 (PST) X-Google-Smtp-Source: AK7set89kYscteO1BqZZF+zANhOTIIxEeDztucDmAuZnUx04bYe0ceQMqMnimh9J+BUF/a/cZQA4 X-Received: by 2002:a50:9f04:0:b0:4ab:4289:e9f8 with SMTP id b4-20020a509f04000000b004ab4289e9f8mr2442746edf.3.1676019121556; Fri, 10 Feb 2023 00:52:01 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id v23-20020aa7cd57000000b004a2259b1304si5016819edw.550.2023.02.10.00.52.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 00:52:01 -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=f4sjIaFV; 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 2DAB0385B512 for ; Fri, 10 Feb 2023 08:51:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2DAB0385B512 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676019119; bh=eR88toDUF9Z5GVi19yo+qRgM01aP3xDAMnLjwUkf7mY=; 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=f4sjIaFV7wAD2VoYSJlg/pfX4R74sSJo7st6CMlXmyQae89jLkP7bg8JuDwQvu/xf BzG4w8hrXQ1PNSIT9garUOFy/o0YQ6WDhD6x2XUiHmAIDrLRcrFKcNIw9RC599iJUm IIlIGg/VUwkU9Va3zZxLCCOUcLogtresGpXSicYQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2048.outbound.protection.outlook.com [40.107.8.48]) by sourceware.org (Postfix) with ESMTPS id 307093858C2D for ; Fri, 10 Feb 2023 08:51:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 307093858C2D ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MbX3XW4nqJE8bnVM/7xIqEJl0W5XQatudPPDTXW644orbKXr5TCP/YnMrtODAZq/tiT7ZM/2izwmyP+TIJgxpPv90pLSC8807IrnbYTPrrQphhL/fpWo+8ti1s2BIwFMmPRHQWzBQqWAJHnj/MdALtxb75S0iHrzKBHkEr5TwPkuAs6Cp759jq1pcxIVtmorC5uQATGXCwPkx2lVTsLiDzeSQeqaEpouAsKWvPtKCAChP8kVGZjknjTZdtjTnCZuJuLVaS5wQGxTcedqPvsGQy7pYt+cprs7RDEv9b9G4zP+UjlHdG5JHQYPLImKGoaif6aRBXBnPoiSVTQXMY1PDg== 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=eR88toDUF9Z5GVi19yo+qRgM01aP3xDAMnLjwUkf7mY=; b=khVRoddDL0aUzJU1BROxeytydtqBm6S/nqy+c7P4fmR4KZuupK0pK6fUehVbRD0/pzFmCS0tdN2FfFomg0eosidy8+DOpi5dEu8YDcmNeyqiIPE2OhnmdDkt03RbfYbiD/CjK5heHDlGcv6yeeRvKX75mJMOy/4exe5MhEUIGyvBTSP8EXn8kuclHNKuz0MJUCI58bsT6Tmkj7dFJb/8WzI3YHxtW3YKYIZn+l+n44jg2f5V8rOU8MJxDHTUKcvBuLf0/AGPrbAFkxp86cC4XZOKfDqaRUaTZGDgPr1Eebh7Og2KLZn5FJtSXqTiEVovAseWPg54KSmLSKrEcdjI7w== 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 AM9PR04MB8507.eurprd04.prod.outlook.com (2603:10a6:20b:432::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21; Fri, 10 Feb 2023 08:51:45 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6086.019; Fri, 10 Feb 2023 08:51:44 +0000 Message-ID: <67715baf-b718-0d00-959a-fc4e70c0dff9@suse.com> Date: Fri, 10 Feb 2023 09:51:42 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH 4/4] x86: MONITOR/MWAIT are not SSE3 insns Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> In-Reply-To: <306b5fa2-9007-a4a1-bff5-f013e2c2c26a@suse.com> X-ClientProxiedBy: FR2P281CA0006.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::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_|AM9PR04MB8507:EE_ X-MS-Office365-Filtering-Correlation-Id: bebde7e4-6b2f-4371-74fb-08db0b440947 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +pkFZXoCfhCpa31nzk94UFVb4SFtL06ho87wZ8makRGxmvXrsFbVUINpZflKPKrUtFWcWHUVkFD2M0bzTL1jXxg7b+EvHn585sK7LKfyaBAlYa1JFEwNLBX2ECqiytg0ET7gv7NmYyER9wOerDKWDSU5WJ9ie0V0omRd+BaY/8ZKwhHQhWCPQGjLRXpzGAIajEpygQohWo+0gStwXf9VcN0qHbwgNOC53Rbv4SVLT1WqGT87TT1oVTgUHxVphmA7NeALCMBuX8hm8w+Y+QZSzHdyz13K+3UvWdTke47HpwEQMQtjAUHua98DT/2/QrNFFAk8ArNEXKOSIEpatX6JK/wpFNLrZI2rlRX3xWfdyp/HUMhsQ1warUUIptsC+zMQoIpK9M1+nG/Qn1IhSx102mLkUuafLTcJLQDwdeHqqYWxCIJ/thLhkTHDJJHigKLYCMGzNmby/akvrOUnMwOT+3mfyC/VNVRp1jlrt+k3j5Zli3KR+KBhH8X0Ci9gg8fk3K/HM83RDWsWPKsx2pKVRpHN+ZVz/YtN2/aLWJaAqVjjWNij9u08/QI3NJ4JtinDw9hEq0KHAC4YeZVoxNWOObI+WE1nUg+tfSCvHIYuLYlMo/GzV6Z7GkLaaK8z9JGbJToH4gNhP5AQh5ZievbJnvvC5Wi/eyO0NoDeXzTzdVZq58tfw4SbYsVfwaFo4n6Kv1m9cdLD4rbq1SpVMRGwtabHmVmGQEiG6bMgrl4fV6A= 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)(376002)(396003)(136003)(346002)(39860400002)(366004)(451199018)(36756003)(2906002)(6486002)(478600001)(26005)(6506007)(186003)(2616005)(6512007)(83380400001)(6916009)(4326008)(8676002)(41300700001)(66556008)(66476007)(30864003)(66946007)(31696002)(8936002)(5660300002)(38100700002)(316002)(86362001)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?l9+UqbLiEVHU1GB75ZCz4BTLahaN?= =?utf-8?q?ICwav8ktocZNEDQY7zXBsV4za0x8BKRV31aPCmCCHShQRF9gzwKQ8eH8Dj5eExnR0?= =?utf-8?q?51Je/WYn9hJ2fO7RVssCn7psqI+QXopmaBubnRAIk3IyhOONDNCOeZFYl+wzqM1gU?= =?utf-8?q?oJiTeI0o4zID4jQPP7BKjfuu4nse3lfLW/7qosUvmcrgX/TQOFscKivn/mwYyVCRh?= =?utf-8?q?ufP4ARZe0Rfi+ckAnT/yaY4uSlOh74cuwugBLT78DojxZr0yw/7cB/Q4zlvA6Nv8r?= =?utf-8?q?WaOe8rMhrfdfwi604k1zgXE1Q53nh5AEBXVipKLwKEtEstww6G5KmLEpTigY/P9xx?= =?utf-8?q?8fjQMJD/+5+CS0voYpdoKNfsxx+nkSR9TPzn3cd3827OkROlohKrMC72XJ7d0WkK1?= =?utf-8?q?eaafaeskX/kmuIQec+CR0kcmgrDX08DeEVAMiLHT0Z/Ekdmbmg3Ai2MU+mLUtUFUI?= =?utf-8?q?celKhhSVg/QDuDy2r6yf3W491wmNvgHvQv3sKFSdUEB8UuD2O4rmsbop93kRJLN8M?= =?utf-8?q?QyfnPRW6/qGa4y0iu63gVf9aIT8KkJV57QXmUoSUZeuCDIZYg4EciSdOF0kdD8gqU?= =?utf-8?q?bUKcTe7JIJxHqyWfklcxluWRwMmnf1qjKKmsPTXxn2KHE95wdJgq7kDpk9Y8L5GAk?= =?utf-8?q?ijaRodLnnwSUqzq3BiFxM2ci7hbYKzF7hADHnYO9h4qeez1nIKY7a6d1G+UZxH8F2?= =?utf-8?q?4cv5/NV9NmGtQbh9ZhUGYimaPy94tmcjX9YyDcFWO6MG4upu2nnkqt9tJlwysaLs/?= =?utf-8?q?f2buit211qxyy4GZ1LHaYfOBSR+X59+txZVvX+i/iHxDsXC8JEc7D+91Mv5aDBc71?= =?utf-8?q?AJlJuLFDFgLDeU7fxX4PzDWBEJz9HYzPxplWfOsKnSnjS7JnVPto+m1FBb740qiDb?= =?utf-8?q?tvVqB75xtve4Z5p6N1zjpCUZeD3ebx5eWinilLHcQv5iRikTqYPpYTa9hveYeic3X?= =?utf-8?q?U3YpJxHYogzceyrKQiSBZ7l76Rlioht07hu1+FY58PBurlowOzBPzI1qvST4+Jd2x?= =?utf-8?q?+BQFdbwxS5fRPaEWdSSE3yCb1IER3HZqXv6OBqnNBVdu/4YldX7g/hSZ8Su7Qd8Mq?= =?utf-8?q?61Vy9daUkQtxuWZgDiY6gQNnbJ6fnaqzfMSNxoMCEytLs7yaeNuNQYLaUgaCyImXe?= =?utf-8?q?cyL9Uz2r7EE0G/MjuNicKHUitJFfLdfB31+bCphBjBZ7kfWRCEeSxcGv5cq0SMqZF?= =?utf-8?q?BeMk8YA8Wrky2xCdQX0rpqzk6xUVO7VDJdQq7W5JMxhSCRpOxJH3sWgCf/2YocYdm?= =?utf-8?q?GJVv0cQRtjr27b3Lp/p7EQrOTTmHVcWNiy3Ylz3c972dNUVxlR9y98PTjKExZ75Ty?= =?utf-8?q?5062XHapn0N/2zilTFbTtq3aY0J7snr+5/dyE66hhdovJ2Ms5mdg72m6LTSWDzL+X?= =?utf-8?q?0xJmex9vS+gzjwke3GeF1GFj9NiVNSD/UXlhgdkGvYVx4D2ubGpNgRuD+ZMTdjOHH?= =?utf-8?q?XLIVe7iFlZzQhDYsygXwmKZnF3bOW5Ah4inF49z2PR77T5wgTvhCvMftSasiSIqQ6?= =?utf-8?q?oMusUhs0Bu7p?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bebde7e4-6b2f-4371-74fb-08db0b440947 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 08:51:44.6291 (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: 5999uHlFyGbsteQvJBw6xNh/+7KbTCPLuw5EICNtPRMvns+aApdrXOV2i/LPnaavzoW0a9ctvirZgNGxceqGcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8507 X-Spam-Status: No, score=-3028.5 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?1757433426129349477?= X-GMAIL-MSGID: =?utf-8?q?1757433426129349477?= These have their own CPUID bit and hence they should also have their own separate control. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1027,6 +1027,7 @@ static const arch_entry cpu_arch[] = SUBARCH (avx512dq, AVX512DQ, ANY_AVX512DQ, false), SUBARCH (avx512bw, AVX512BW, ANY_AVX512BW, false), SUBARCH (avx512vl, AVX512VL, ANY_AVX512VL, false), + SUBARCH (monitor, MONITOR, MONITOR, false), SUBARCH (vmx, VMX, ANY_VMX, false), SUBARCH (vmfunc, VMFUNC, ANY_VMFUNC, false), SUBARCH (smx, SMX, SMX, false), --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -152,6 +152,7 @@ accept various extension mnemonics. For @code{avx}, @code{avx2}, @code{lahf_sahf}, +@code{monitor}, @code{adx}, @code{rdseed}, @code{prfchw}, @@ -1487,7 +1488,7 @@ supported on the CPU specified. The cho @item @samp{.aes} @tab @samp{.pclmul} @tab @samp{.fma} @tab @samp{.fsgsbase} @item @samp{.rdrnd} @tab @samp{.f16c} @tab @samp{.avx2} @tab @samp{.bmi2} @item @samp{.lzcnt} @tab @samp{.popcnt} @tab @samp{.invpcid} @tab @samp{.vmfunc} -@item @samp{.hle} @tab @samp{.rtm} @tab @samp{.tsx} +@item @samp{.monitor} @tab @samp{.hle} @tab @samp{.rtm} @tab @samp{.tsx} @item @samp{.lahf_sahf} @tab @samp{.adx} @tab @samp{.rdseed} @tab @samp{.prfchw} @item @samp{.smap} @tab @samp{.mpx} @tab @samp{.sha} @tab @samp{.prefetchwt1} @item @samp{.clflushopt} @tab @samp{.xsavec} @tab @samp{.xsaves} @tab @samp{.se1} --- a/gas/testsuite/gas/i386/arch-10.d +++ b/gas/testsuite/gas/i386/arch-10.d @@ -1,4 +1,4 @@ -#as: -march=i686+mmx+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+nop+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm +#as: -march=i686+mmx+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+nop+syscall+monitor+rdtscp+3dnowa+sse4a+svme+abm+padlock+bmi+tbm #objdump: -dw #name: i386 arch 10 @@ -38,4 +38,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\) [ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx [ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx +[ ]*[a-f0-9]+: 0f 01 c8 monitor( .*) #pass --- a/gas/testsuite/gas/i386/arch-10.s +++ b/gas/testsuite/gas/i386/arch-10.s @@ -62,3 +62,5 @@ nopl (%eax) blsr %ecx,%ebx # TBM blcfill %ecx,%ebx +# MONITOR +monitor --- a/gas/testsuite/gas/i386/arch-10-1.l +++ b/gas/testsuite/gas/i386/arch-10-1.l @@ -30,6 +30,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -101,3 +102,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# MONITOR +[ ]*66[ ]+monitor --- a/gas/testsuite/gas/i386/arch-10-2.l +++ b/gas/testsuite/gas/i386/arch-10-2.l @@ -29,6 +29,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -100,3 +101,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# MONITOR +[ ]*66[ ]+monitor --- a/gas/testsuite/gas/i386/arch-10-3.l +++ b/gas/testsuite/gas/i386/arch-10-3.l @@ -22,6 +22,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -96,3 +97,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# MONITOR +[ ]*66[ ]+monitor --- a/gas/testsuite/gas/i386/arch-10-4.l +++ b/gas/testsuite/gas/i386/arch-10-4.l @@ -20,6 +20,7 @@ .*:60: Error: .* .*:62: Error: .* .*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -94,3 +95,5 @@ GAS LISTING .* [ ]*62[ ]+blsr %ecx,%ebx [ ]*63[ ]+\# TBM [ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# MONITOR +[ ]*66[ ]+monitor --- /dev/null +++ b/gas/testsuite/gas/i386/arch-10-6.l @@ -0,0 +1,99 @@ +.*: Assembler messages: +.*:4: Error: .* +.*:6: Error: .* +.*:8: Error: .* +.*:10: Error: .* +.*:12: Error: .* +.*:14: Error: .* +.*:16: Error: .* +.*:18: Error: .* +.*:20: Error: .* +.*:22: Error: .* +.*:24: Error: .* +.*:26: Error: .* +.*:28: Error: .* +.*:30: Error: .* +.*:32: Error: .* +.*:34: Error: .* +.*:36: Error: .* +.*:38: Error: .* +.*:40: Error: .* +.*:42: Error: .* +.*:44: Error: .* +.*:46: Error: .* +.*:48: Error: .* +.*:50: Error: .* +.*:52: Error: .* +.*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* +.*:60: Error: .* +.*:62: Error: .* +.*:64: Error: .* +[ ]*1[ ]+\.include "arch-10\.s" +[ ]*1[ ]+\# Test -march= +[ ]*2[ ]+\.text +[ ]*3[ ]+\# cmov feature * +[ ]*4[ ]+cmove %eax,%ebx +[ ]*5[ ]+\# clflush +[ ]*6[ ]+clflush \(%eax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+phaddw %xmm4,%xmm3 +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+phminposuw %xmm1,%xmm3 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+crc32 %ecx,%ebx +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# Xsaveopt +[ ]*32[ ]+xsaveopt \(%ecx\) +[ ]*33[ ]+\# AES +[ ]*34[ ]+aesenc \(%ecx\),%xmm0 +[ ]*35[ ]+\# PCLMUL +[ ]*36[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*37[ ]+\# AES \+ AVX +[ ]*38[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 +[ ]*39[ ]+\# PCLMUL \+ AVX +[ ]*40[ ]+vpclmulqdq \$8,%xmm4,%xmm6,%xmm2 +[ ]*41[ ]+\# FMA +[ ]*42[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*43[ ]+\# MOVBE +[ ]*44[ ]+movbe \(%ecx\),%ebx +[ ]*45[ ]+\# EPT +[ ]*46[ ]+invept \(%ecx\),%ebx +[ ]*47[ ]+\# RDTSCP +[ ]*48[ ]+rdtscp +[ ]*49[ ]+\# 3DNow or PRFCHW +[ ]*50[ ]+prefetchw 0x1000\(,%esi,2\) +[ ]*51[ ]+\# SSE4a +[ ]*52[ ]+insertq %xmm2,%xmm1 +[ ]*53[ ]+\# SVME +[ ]*54[ ]+vmload +[ ]*55[ ]+\# ABM/LZCNT +[ ]*56[ ]+lzcnt %ecx,%ebx +[ ]*57[ ]+\# PadLock +[ ]*58[ ]+xstorerng +[ ]*59[ ]+\# nop +[ ]*60[ ]+nopl \(%eax\) +[ ]*61[ ]+\# BMI +[ ]*62[ ]+blsr %ecx,%ebx +[ ]*63[ ]+\# TBM +[ ]*64[ ]+blcfill %ecx,%ebx +[ ]*65[ ]+\# MONITOR +[ ]*66[ ]+\?\?\?\? 0F01C8 monitor --- /dev/null +++ b/gas/testsuite/gas/i386/arch-10-6.s @@ -0,0 +1 @@ +.include "arch-10.s" --- a/gas/testsuite/gas/i386/arch-10-lzcnt.d +++ b/gas/testsuite/gas/i386/arch-10-lzcnt.d @@ -1,5 +1,5 @@ #source: arch-10.s -#as: -march=i686+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm +#as: -march=i686+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+monitor+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm #objdump: -dw #name: i386 arch 10 (lzcnt) #dump: arch-10.d --- a/gas/testsuite/gas/i386/arch-10-prefetchw.d +++ b/gas/testsuite/gas/i386/arch-10-prefetchw.d @@ -1,5 +1,5 @@ #source: arch-10.s -#as: -march=i686+mmx+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw +#as: -march=i686+mmx+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+monitor+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw #objdump: -dw #name: i386 arch 10 (prefetchw) #dump: arch-10.d --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -206,6 +206,7 @@ if [gas_32_check] then { run_list_test "arch-10-3" "-march=i686+mmx+sse4.2 -I${srcdir}/$subdir -al" run_list_test "arch-10-4" "-march=i686+mmx+sse4+vmx+smx -I${srcdir}/$subdir -al" run_list_test "arch-10-5" "-march=generic32+i686 -al" + run_list_test "arch-10-6" "-march=generic32+monitor -I${srcdir}/$subdir -aln" run_dump_test "arch-11" run_dump_test "arch-12" run_dump_test "arch-13" --- a/gas/testsuite/gas/i386/nosse-3.l +++ b/gas/testsuite/gas/i386/nosse-3.l @@ -5,3 +5,4 @@ GAS LISTING .* [ ]*1[ ]+\# Test -march=\+nosse [ ]*2[ ]+\.text [ ]*3[ ]+lfence +[ ]*4[ ]+\?\?\?\? 0F01C8 monitor --- a/gas/testsuite/gas/i386/nosse-3.s +++ b/gas/testsuite/gas/i386/nosse-3.s @@ -1,3 +1,4 @@ # Test -march=+nosse .text lfence + monitor --- a/gas/testsuite/gas/i386/nosse-4.l +++ b/gas/testsuite/gas/i386/nosse-4.l @@ -2,6 +2,7 @@ .*:6: Error: .*generic.* .*:9: Error: .*\.sse.* .*:12: Error: .*\.sse2.* +.*:14: Error: .*\.sse3.* .*:15: Error: .*\.sse3.* .*:18: Error: .*\.ssse3.* .*:21: Error: .*\.sse4\.1.* @@ -9,10 +10,9 @@ .*:32: Error: .*\.nosse4\.2.* .*:35: Error: .*\.nosse4\.1.* .*:38: Error: .*\.nossse3.* -.*:43: Error: .*\.nosse3.* -.*:45: Error: .*\.nommx.* -.*:47: Error: .*\.nosse2.* -.*:50: Error: .*\.nosse.* +.*:43: Error: .*\.nommx.* +.*:45: Error: .*\.nosse2.* +.*:48: Error: .*\.nosse.* GAS LISTING .* #... [ ]*1[ ]+\# Test \.arch \[\.sseX|\.nosseX\] @@ -28,7 +28,7 @@ GAS LISTING .* [ ]*11[ ]+\?\?\?\? 0FAEE8 lfence [ ]*12[ ]+mwait [ ]*13[ ]+\.arch \.sse3 -[ ]*14[ ]+\?\?\?\? 0F01C9 mwait +[ ]*14[ ]+mwait [ ]*15[ ]+pabsd %xmm0, %xmm0 [ ]*16[ ]+\.arch \.ssse3 [ ]*17[ ]+\?\?\?\? 660F381E pabsd %xmm0, %xmm0 @@ -60,21 +60,15 @@ GAS LISTING .* [ ]*36[ ]+C0 [ ]*37[ ]+\.arch \.nossse3 [ ]*38[ ]+pabsd %xmm0, %xmm0 -[ ]*39[ ]+\?\?\?\? 0F01C9 mwait -[ ]*40[ ]+\?\?\?\? 0F77 emms -[ ]*41[ ]+\.arch \.nommx -[ ]*42[ ]+\.arch \.nosse3 -[ ]*43[ ]+mwait -[ ]*44[ ]+\?\?\?\? 0FAEE8 lfence -[ ]*45[ ]+emms -[ ]*46[ ]+\.arch \.nosse2 -[ ]*47[ ]+lfence -[ ]*48[ ]+\?\?\?\? 0F58C0 addps %xmm0, %xmm0 -[ ]*49[ ]+\.arch \.nosse -[ ]*50[ ]+addps %xmm0, %xmm0 - GAS LISTING .* - - -[ ]*51[ ]+\?\?\?\? 8DB42600 \.p2align 4 -[ ]*51[ ]+000000 +[ ]*39[ ]+\?\?\?\? 0F77 emms +[ ]*40[ ]+\.arch \.nommx +[ ]*41[ ]+\.arch \.nosse3 +[ ]*42[ ]+\?\?\?\? 0FAEE8 lfence +[ ]*43[ ]+emms +[ ]*44[ ]+\.arch \.nosse2 +[ ]*45[ ]+lfence +[ ]*46[ ]+\?\?\?\? 0F58C0 addps %xmm0, %xmm0 +[ ]*47[ ]+\.arch \.nosse +[ ]*48[ ]+addps %xmm0, %xmm0 +[ ]*49[ ]+\?\?\?\? .* \.p2align 4 #pass --- a/gas/testsuite/gas/i386/nosse-4.s +++ b/gas/testsuite/gas/i386/nosse-4.s @@ -36,11 +36,9 @@ pabsd %xmm0, %xmm0 .arch .nossse3 pabsd %xmm0, %xmm0 - mwait emms .arch .nommx .arch .nosse3 - mwait lfence emms .arch .nosse2 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -61,9 +61,9 @@ static const dependency isa_dependencies { "P4", "P3|Clflush|SSE2" }, { "NOCONA", - "GENERIC64|FISTTP|SSE3|CX16" }, + "GENERIC64|FISTTP|SSE3|MONITOR|CX16" }, { "CORE", - "P4|FISTTP|SSE3|CX16" }, + "P4|FISTTP|SSE3|MONITOR|CX16" }, { "CORE2", "NOCONA|SSSE3" }, { "COREI7", @@ -77,9 +77,9 @@ static const dependency isa_dependencies { "K8", "ATHLON|Rdtscp|SSE2|LM" }, { "AMDFAM10", - "K8|FISTTP|SSE4A|ABM" }, + "K8|FISTTP|SSE4A|ABM|MONITOR" }, { "BDVER1", - "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" }, + "GENERIC64|FISTTP|Rdtscp|MONITOR|CX16|LAHF_SAHF|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" }, { "BDVER2", "BDVER1|FMA|BMI|TBM|F16C" }, { "BDVER3", @@ -87,7 +87,7 @@ static const dependency isa_dependencies { "BDVER4", "BDVER3|AVX2|Movbe|BMI2|RdRnd|MWAITX" }, { "ZNVER1", - "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" }, + "GENERIC64|FISTTP|Rdtscp|MONITOR|CX16|LAHF_SAHF|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" }, { "ZNVER2", "ZNVER1|CLWB|RDPID|RDPRU|MCOMMIT|WBNOINVD" }, { "ZNVER3", @@ -95,7 +95,7 @@ static const dependency isa_dependencies { "ZNVER4", "ZNVER3|AVX512F|AVX512DQ|AVX512IFMA|AVX512CD|AVX512BW|AVX512VL|AVX512_BF16|AVX512VBMI|AVX512_VBMI2|AVX512_VNNI|AVX512_BITALG|AVX512_VPOPCNTDQ|GFNI|RMPQUERY" }, { "BTVER1", - "GENERIC64|FISTTP|CX16|LAHF_SAHF|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|Clflush|FISTTP|SVME" }, + "GENERIC64|FISTTP|MONITOR|CX16|LAHF_SAHF|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|Clflush|FISTTP|SVME" }, { "BTVER2", "BTVER1|AVX|BMI|F16C|AES|PCLMUL|Movbe|Xsaveopt|PRFCHW" }, { "286", @@ -322,6 +322,7 @@ static bitfield cpu_flags[] = BITFIELD (BMI2), BITFIELD (LZCNT), BITFIELD (POPCNT), + BITFIELD (MONITOR), BITFIELD (HLE), BITFIELD (RTM), BITFIELD (INVPCID), --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -88,6 +88,8 @@ enum CpuLZCNT, /* POPCNT support required */ CpuPOPCNT, + /* MONITOR support required */ + CpuMONITOR, /* SSE4.1 support required */ CpuSSE4_1, /* SSE4.2 support required */ @@ -350,6 +352,7 @@ typedef union i386_cpu_flags unsigned int cpusse4a:1; unsigned int cpulzcnt:1; unsigned int cpupopcnt:1; + unsigned int cpumonitor:1; unsigned int cpusse4_1:1; unsigned int cpusse4_2:1; unsigned int cpuavx:1; --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1270,17 +1270,17 @@ cmpxchg16b, 0xfc7/1, CX16|x64, Modrm|NoS // MONITOR instructions. -monitor, 0xf01c8, SSE3, NoSuf, {} +monitor, 0xf01c8, MONITOR, NoSuf, {} // monitor is very special. CX and DX are always 32 bits. The // address size override prefix can be used to overrride the AX size in // all modes. -monitor, 0xf01c8, SSE3, AddrPrefixOpReg|NoSuf, { Acc|Word|Dword|Qword, RegC|Dword, RegD|Dword } +monitor, 0xf01c8, MONITOR, AddrPrefixOpReg|NoSuf, { Acc|Word|Dword|Qword, RegC|Dword, RegD|Dword } // The 64-bit form exists only for compatibility with older gas. -monitor, 0xf01c8, SSE3|x64, AddrPrefixOpReg|NoSuf, { Acc|Dword|Qword, RegC|Qword, RegD|Qword } -mwait, 0xf01c9, SSE3, NoSuf, {} +monitor, 0xf01c8, MONITOR|x64, AddrPrefixOpReg|NoSuf, { Acc|Dword|Qword, RegC|Qword, RegD|Qword } +mwait, 0xf01c9, MONITOR, NoSuf, {} // mwait is very special. AX and CX are always 32 bits. // The 64-bit form exists only for compatibility with older gas. -mwait, 0xf01c9, SSE3, CheckOperandSize|IgnoreSize|NoSuf|NoRex64, { Acc|Dword|Qword, RegC|Dword|Qword } +mwait, 0xf01c9, MONITOR, CheckOperandSize|IgnoreSize|NoSuf|NoRex64, { Acc|Dword|Qword, RegC|Dword|Qword } // VMX instructions.