From patchwork Wed Nov 23 10:33:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 24873 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2707515wrr; Wed, 23 Nov 2022 02:33:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf4hldCdqrdXS9+iMYtrl4iyApLYolU6DNtO3NqJ4tHj7iaKcdtgFFPGc8jWdGrq6m+OqCjx X-Received: by 2002:a17:906:89a1:b0:7ae:3193:8cf3 with SMTP id gg33-20020a17090689a100b007ae31938cf3mr22053608ejc.416.1669199633483; Wed, 23 Nov 2022 02:33:53 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id b14-20020a170906038e00b0073d92f83e06si5490189eja.887.2022.11.23.02.33.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:33:53 -0800 (PST) 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=pZY7X15X; 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 3158D3853D70 for ; Wed, 23 Nov 2022 10:33:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3158D3853D70 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669199632; bh=niXPRi8JelGxWhGbU/tXH+UInkX9jai0qIKaaT5/9HM=; 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=pZY7X15XuGaFf8kDLNrk3SMqsiaxP+BiqOIBq7G+6McSeASCuXTy3xvje7k0mt9Dx QIUt7n6c0XGTmKBh4LSTkI5I6jrtQKvCo9PY+s+H7q5m78IqO/stX9piRQApJ081e0 8HhC8KPFbRk27Zr4gwU6P+Fr7w+Aal/aUogtmfm0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2081.outbound.protection.outlook.com [40.107.20.81]) by sourceware.org (Postfix) with ESMTPS id 5B27C3858D32 for ; Wed, 23 Nov 2022 10:33:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5B27C3858D32 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FFCo+EnPF3nckTlERhXfPuRt85zbCaFvwe3cygCNI3v/lbTf7TRCwOmjbHUrAjBgQKeDSo2Q2Xe8xH+KHOK0yEmt0ZUiHj4fTzNFbQE1CKECaLxC5SBwp7ILEZQdj+7CpjMUBMXwau5RpCi6j4rzoiTW4FTT0CZz+pW8EjMq04sw/+FtgNyOwl4u+9bn9P8AwJN9FE6ATSgV0aLi/JiaB7AwgGdNwJEUlR2wcOAztztdSqvHOBYYXQ+nicekGmbXFfrCrJXp8yZEXiMwNAXBXuVhNITp6Od8DDcMMJ1hovLNabvTO5r4X3+pzswlNare+hLy2emVdCnu/Jeu8sQMTA== 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=niXPRi8JelGxWhGbU/tXH+UInkX9jai0qIKaaT5/9HM=; b=Hyy5BB2SL42mrsVMnO1W4WVXWv9h991k9sRdhA8C+nVdsH2DVT+00UjN1tBJNggPMqaV8+AbynujRVUMjG+gEztZoV2dc3Z1jWIK+fBxxrJ0vYlW3AG9wZdKkvqfZ7nAok1jmNCYFfnBsRZK0Dimh/ceGqKf+LB+iBu12HHHNr1oTNufK6mAwFmDFOD3ew7+pcVJT2dCrPcYv4F/Whmpds8gvK+0HS1CVEq0+kT7IWse5P8mmSP69xihOQNBJsMmViX10+IrjlNphwtfNkLPFlAOu7xWmtqmb6hjGoJc7oZ4vfxJsSKzxp7il3fNhZRs/cmH1O3hoeAsIeAtCNiL5w== 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 DB9PR04MB9426.eurprd04.prod.outlook.com (2603:10a6:10:36a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Wed, 23 Nov 2022 10:33:40 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5834.015; Wed, 23 Nov 2022 10:33:39 +0000 Message-ID: <40d1240c-154b-ecea-c391-9fab12129b2b@suse.com> Date: Wed, 23 Nov 2022 11:33:38 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH 1/3] x86: correct handling of LAR and LSL Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0076.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::14) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB9PR04MB9426:EE_ X-MS-Office365-Filtering-Correlation-Id: a69c89f4-b932-4dab-ac25-08dacd3e2f8d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FV0lmSoLewSm9UKPny4MRw/QVlAxgxqQYzAWgLBxAZWGe2pAzrCjf+HfwH2HSMGm3Jjlbf5pwvyFJ4PamPUYVChYw0BnPNhJWzYtvsKjtWUefklSpDGn9us8hfuhSRSYlZ35hkyXq5W4MckT+4+1SvHkDFZsH6Fwzr6EZjSNK14aJMPonO5S7DkA3twND9WOX/uF/7fTvM6NmQyouCq9t2hvjmciW/BOZG1W0T5GV0EQo7uKWpT431R7QVPmm8fn9xFxuLQh75DmHDAr0YnDBnalt1quBcXklWvNnp7LIZgvtC8mwXt+DTSethDNe0hqPg2Q/OkUgrz+jd2PDm0Au1tcwbD5taIFtFXqEkxtoPnimp9zrYyRjmrsZPLaBJcmOCOCyU02N/jdQlFldNBoid0LY1qbBNLiF5jOCFJoyCOQFSJ8IpWYWyeYL9HjK5/WwPPGsgmM7LEdQBA3wZNTcHrFUo1ptHPflqzJxkvUWWEfFKbp5WtRthH8+jHfOT8OBCn6d1Rp3Jjy0guSg9n/qvfj5KX6IcOwMaMplDs4AF56zjM7TDLxkSoku4a86Yr7O16+iYUzHeZwHbg4jrh0UJ1Slgxl4Ycm2Gx3wT008jr03q7Gpw+RbMxx323MvAFFDNhthDPU+UrDK6wQev9iXZCyieXiQUflWPHdvxoae2hB7FaHQuyGj+wuJ9A7KDm4mStljUBfBIyhRi60LHbMbF+sj+sWWdNJTHQhblWV8nU= 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)(136003)(39860400002)(346002)(366004)(376002)(396003)(451199015)(31686004)(31696002)(36756003)(41300700001)(66946007)(66476007)(186003)(2616005)(66556008)(86362001)(2906002)(38100700002)(6506007)(6916009)(8936002)(5660300002)(26005)(4326008)(8676002)(316002)(6486002)(478600001)(6512007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?OepR06NzGNk68JDLZAoujWIJFKGS?= =?utf-8?q?ifUqR65sc8tGDy0LsRg4YmfcfIkyGyUiKBd5fmwgJbr8q012oGjNabP4w6MHilzIt?= =?utf-8?q?W8JudfOGQUh16AVcVaQYbBX0x/3WRqN4mxXuKuhYzFICf02TmZpobxzZYHPBhFgKc?= =?utf-8?q?9K3mxrf0j1lgM23Kz/j6Y7FdwJrhRXbpLfH6baWAZ/mhfLaDjFvyCC7hZEsQ5ULqB?= =?utf-8?q?S9KO1cR6ITPHaEm5nW0ejlQ+v2q//4LqVpUHWjZRDqeJZSjRLf3R5MJQGGw1d3U7b?= =?utf-8?q?iknwN8Rm/XXjlJptOYaCDuPUAyrtRiuiAVkBLgitp8lWXx5A3i7yZouj+MgiAuxco?= =?utf-8?q?pJ/hzturfwRd5zAZ7nW46b0QRKs/dKRlzW5y53asEHcESd6L1i894VNpvhSvSdJ+S?= =?utf-8?q?wDE9/K8irCMC0KMQ5SXPISy70L2GSTBYkBb9e65zW5/plUxKQ5Cf/rYQyMh7BdzuX?= =?utf-8?q?yDyJOOkyPWbBWBv57GIMgGNkYOXM6d6YLkwgr2XswW9YFQDlRa+b+36HAAS28uvkr?= =?utf-8?q?sZP5Wdx/qYR5sTAUhq4bE2nVLDWrefph9WTZrgebi8701h9VHD85ShoIUeHXv7BMr?= =?utf-8?q?PCDUJXoP6zIQgDeG48TwG8hwrgcWRmIveFWHHVl6iKB48vSK5rRDiG4dAFEh879is?= =?utf-8?q?HhwkqKWypCEyvdZnN3qRqmo+I2PrKwUAxWgdOAdsL3MDd27iQHKpDXD2GSqTu7s5o?= =?utf-8?q?iIhEL1DCN1dsXrFuZF/6HgREAZGjEqHfGrxq60CavMxiFjfYSVkgY6si/vGfzecaz?= =?utf-8?q?1O3qdDx864q6mQP5OgJb66oJuWTtAzkL/3w0KbV3FMWKBfnF26TuVJKwFM+clBEaU?= =?utf-8?q?iVgWXkcRApYAEgIuNbjxEnWvRyVTk3NLSXdwET2wm/dp7XjsS+5BcT7K61xgQ/uaX?= =?utf-8?q?1aqvNNJ+Bw4Tx1K0WiAdDkrsADMO2HLzLNE5xQOmZ/7IRSRdP5cdBxRNiAuNH6n3f?= =?utf-8?q?l21vVNY405UiUeGNOuDb0Pqt2KkYfE43uuGyBtSDZj/T1d1sUcopw4PrWHdRxolrS?= =?utf-8?q?5c/4HY4hIDKuZtryriXF6kQSb3BCc4mXu9ScD4wR1LwG30v9LVGWVHELdTikjRXJn?= =?utf-8?q?BiKwOOdVKnVy86tIY/e937D054gAvBW9Y/pUAAgZ6Lo2Jq3wRFnltyrsyRSjqbD0B?= =?utf-8?q?qCv6+YNXyS0zC/Q63/snSqhLZ/ix/v9rSn+s06gilNlAZ1EOHvor93Q0OP3chId9P?= =?utf-8?q?a1tOlM5jI9toNu6qYD3H3f/SVLuHdrhQ0AWw885KtWbR/TP21Ts0GCgWjvPzCXFjO?= =?utf-8?q?qU6B3mqYaibVJicT0VJys14q3Mm0NN66FtBEE3FQ4IhB2aU+Hx1btR3g2e8MRciBI?= =?utf-8?q?PzGuyvojekbG9G9YxUeuEOIyGtDArdKL1PpyW+DFhqI2N+g6nDLDlmpftKkXOCLr5?= =?utf-8?q?ZPIn4DWJPfvsXOfZ2U+dcSCHI337+5DU5aosPTcWWqjZpdtckkEFY9A4hFvGr5IdR?= =?utf-8?q?CFYsNkVIBi+qxop2hYdpqby8XCYZzsCdYzilGwAoAxmf56kbvrOUvd7zykEsxo8B2?= =?utf-8?q?W1HTH2/Kq1Qw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a69c89f4-b932-4dab-ac25-08dacd3e2f8d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2022 10:33:39.7076 (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: Cz5joKao2YfcIkbcrQ8+sY+N0FB0WruKyDWgxYG3IBOGWFthRYWt3uORqBx8T3qYcXWwsrNXWjSu2p1JZY9H3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9426 X-Spam-Status: No, score=-3029.2 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?1750282675047731014?= X-GMAIL-MSGID: =?utf-8?q?1750282675047731014?= Both uniformly only ever take 16-bit memory operands while at the same time requiring matching (in size) register operands, which then also should disassemble that way. This in particular requires splitting each of the templates for the assembler and separating decode of the register and memory forms in the disassembler. --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -697,7 +697,9 @@ i386_intel_operand (char *operand_string i.types[this_operand].bitfield.word = 1; if (got_a_float == 2) /* "fi..." */ suffix = SHORT_MNEM_SUFFIX; - else + else if ((current_templates->start->base_opcode | 1) != 0x03 + || (current_templates->start->opcode_modifier.opcodespace + != SPACE_0F)) /* lar, lsl */ suffix = WORD_MNEM_SUFFIX; break; --- a/gas/testsuite/gas/i386/intel.d +++ b/gas/testsuite/gas/i386/intel.d @@ -698,6 +698,14 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 4b 90 90 90 90 90 cmovnp -0x6f6f6f70\(%eax\),%edx [ ]*[a-f0-9]+: 66 0f 4a 90 90 90 90 90 cmovp -0x6f6f6f70\(%eax\),%dx [ ]*[a-f0-9]+: 66 0f 4b 90 90 90 90 90 cmovnp -0x6f6f6f70\(%eax\),%dx +[ ]*[a-f0-9]+: 0f 02 c0 lar %eax,%eax +[ ]*[a-f0-9]+: 66 0f 02 c0 lar %ax,%ax +[ ]*[a-f0-9]+: 0f 02 00 lar \(%eax\),%eax +[ ]*[a-f0-9]+: 66 0f 02 00 lar \(%eax\),%ax +[ ]*[a-f0-9]+: 0f 03 c0 lsl %eax,%eax +[ ]*[a-f0-9]+: 66 0f 03 c0 lsl %ax,%ax +[ ]*[a-f0-9]+: 0f 03 00 lsl \(%eax\),%eax +[ ]*[a-f0-9]+: 66 0f 03 00 lsl \(%eax\),%ax [ ]*[a-f0-9]+: 8b 04 04 mov \(%esp,%eax(,1)?\),%eax [ ]*[a-f0-9]+: 8b 04 20 mov \(%eax(,%eiz)?(,1)?\),%eax [ ]*[a-f0-9]+: c4 e2 69 92 04 08 vgatherdps %xmm2,\(%eax,%xmm1(,1)?\),%xmm0 --- a/gas/testsuite/gas/i386/intel.s +++ b/gas/testsuite/gas/i386/intel.s @@ -699,6 +699,16 @@ fidivr dword ptr [ebx] cmovpe dx, 0x90909090[eax] cmovpo dx, 0x90909090[eax] + lar eax, eax + lar ax, ax + lar eax, word ptr [eax] + lar ax, word ptr [eax] + + lsl eax, eax + lsl ax, ax + lsl eax, word ptr [eax] + lsl ax, word ptr [eax] + # Check base/index swapping .allow_index_reg mov eax, [eax+esp] --- a/gas/testsuite/gas/i386/intel-intel.d +++ b/gas/testsuite/gas/i386/intel-intel.d @@ -232,8 +232,8 @@ Disassembly of section .text: [ ]*[a-f0-9]+: e5 90 + in eax,0x90 [ ]*[a-f0-9]+: e6 90 + out 0x90,al [ ]*[a-f0-9]+: e7 90 + out 0x90,eax -[ ]*[a-f0-9]+: e8 90 90 90 90 + call 90909373 -[ ]*[a-f0-9]+: e9 90 90 90 90 + jmp 90909378 +[ ]*[a-f0-9]+: e8 90 90 90 90 + call 90909... +[ ]*[a-f0-9]+: e9 90 90 90 90 + jmp 90909... [ ]*[a-f0-9]+: ea 90 90 90 90 90 90 jmp 0x9090:0x90909090 [ ]*[a-f0-9]+: eb 90 + jmp 281 [ ]*[a-f0-9]+: ec + in al,dx @@ -308,22 +308,22 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 77 + emms [ ]*[a-f0-9]+: 0f 7e 90 90 90 90 90 movd DWORD PTR \[eax-0x6f6f6f70\],mm2 [ ]*[a-f0-9]+: 0f 7f 90 90 90 90 90 movq QWORD PTR \[eax-0x6f6f6f70\],mm2 -[ ]*[a-f0-9]+: 0f 80 90 90 90 90 + jo 909094e6 -[ ]*[a-f0-9]+: 0f 81 90 90 90 90 + jno 909094ec -[ ]*[a-f0-9]+: 0f 82 90 90 90 90 + jb 909094f2 -[ ]*[a-f0-9]+: 0f 83 90 90 90 90 + jae 909094f8 -[ ]*[a-f0-9]+: 0f 84 90 90 90 90 + je 909094fe -[ ]*[a-f0-9]+: 0f 85 90 90 90 90 + jne 90909504 -[ ]*[a-f0-9]+: 0f 86 90 90 90 90 + jbe 9090950a -[ ]*[a-f0-9]+: 0f 87 90 90 90 90 + ja 90909510 -[ ]*[a-f0-9]+: 0f 88 90 90 90 90 + js 90909516 -[ ]*[a-f0-9]+: 0f 89 90 90 90 90 + jns 9090951c -[ ]*[a-f0-9]+: 0f 8a 90 90 90 90 + jp 90909522 -[ ]*[a-f0-9]+: 0f 8b 90 90 90 90 + jnp 90909528 -[ ]*[a-f0-9]+: 0f 8c 90 90 90 90 + jl 9090952e -[ ]*[a-f0-9]+: 0f 8d 90 90 90 90 + jge 90909534 -[ ]*[a-f0-9]+: 0f 8e 90 90 90 90 + jle 9090953a -[ ]*[a-f0-9]+: 0f 8f 90 90 90 90 + jg 90909540 +[ ]*[a-f0-9]+: 0f 80 90 90 90 90 + jo 90909... +[ ]*[a-f0-9]+: 0f 81 90 90 90 90 + jno 90909... +[ ]*[a-f0-9]+: 0f 82 90 90 90 90 + jb 90909... +[ ]*[a-f0-9]+: 0f 83 90 90 90 90 + jae 90909... +[ ]*[a-f0-9]+: 0f 84 90 90 90 90 + je 90909... +[ ]*[a-f0-9]+: 0f 85 90 90 90 90 + jne 90909... +[ ]*[a-f0-9]+: 0f 86 90 90 90 90 + jbe 90909... +[ ]*[a-f0-9]+: 0f 87 90 90 90 90 + ja 90909... +[ ]*[a-f0-9]+: 0f 88 90 90 90 90 + js 90909... +[ ]*[a-f0-9]+: 0f 89 90 90 90 90 + jns 90909... +[ ]*[a-f0-9]+: 0f 8a 90 90 90 90 + jp 90909... +[ ]*[a-f0-9]+: 0f 8b 90 90 90 90 + jnp 90909... +[ ]*[a-f0-9]+: 0f 8c 90 90 90 90 + jl 90909... +[ ]*[a-f0-9]+: 0f 8d 90 90 90 90 + jge 90909... +[ ]*[a-f0-9]+: 0f 8e 90 90 90 90 + jle 90909... +[ ]*[a-f0-9]+: 0f 8f 90 90 90 90 + jg 90909... [ ]*[a-f0-9]+: 0f 90 80 90 90 90 90 seto BYTE PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 0f 91 80 90 90 90 90 setno BYTE PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 0f 92 80 90 90 90 90 setb BYTE PTR \[eax-0x6f6f6f70\] @@ -532,7 +532,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 d3 90 90 90 90 90 rcl WORD PTR \[eax-0x6f6f6f70\],cl [ ]*[a-f0-9]+: 66 e5 90 + in ax,0x90 [ ]*[a-f0-9]+: 66 e7 90 + out 0x90,ax -[ ]*[a-f0-9]+: 66 e8 8f 90 + callw 9922 +[ ]*[a-f0-9]+: 66 e8 8f 90 + callw 9... [ ]*[a-f0-9]+: 66 ea 90 90 90 90 + jmp 0x9090:0x9090 [ ]*[a-f0-9]+: 66 ed + in ax,dx [ ]*[a-f0-9]+: 66 ef + out dx,ax @@ -699,6 +699,14 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 4b 90 90 90 90 90 cmovnp edx,DWORD PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 66 0f 4a 90 90 90 90 90 cmovp dx,WORD PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 66 0f 4b 90 90 90 90 90 cmovnp dx,WORD PTR \[eax-0x6f6f6f70\] +[ ]*[a-f0-9]+: 0f 02 c0 + lar eax,eax +[ ]*[a-f0-9]+: 66 0f 02 c0 + lar ax,ax +[ ]*[a-f0-9]+: 0f 02 00 + lar eax,WORD PTR \[eax\] +[ ]*[a-f0-9]+: 66 0f 02 00 + lar ax,WORD PTR \[eax\] +[ ]*[a-f0-9]+: 0f 03 c0 + lsl eax,eax +[ ]*[a-f0-9]+: 66 0f 03 c0 + lsl ax,ax +[ ]*[a-f0-9]+: 0f 03 00 + lsl eax,WORD PTR \[eax\] +[ ]*[a-f0-9]+: 66 0f 03 00 + lsl ax,WORD PTR \[eax\] [ ]*[a-f0-9]+: 8b 04 04 + mov eax,DWORD PTR \[esp\+eax\*1\] [ ]*[a-f0-9]+: 8b 04 20 + mov eax,DWORD PTR \[eax\+eiz\*1\] [ ]*[a-f0-9]+: c4 e2 69 92 04 08 + vgatherdps xmm0,DWORD PTR \[eax\+xmm1\*1\],xmm2 --- a/gas/testsuite/gas/i386/intelbad.l +++ b/gas/testsuite/gas/i386/intelbad.l @@ -161,3 +161,11 @@ .*:181: Error: .* .*:183: Error: .* .*:184: Error: .* +.*:186: Error: .* +.*:187: Error: .* +.*:188: Error: .* +.*:189: Error: .* +.*:191: Error: .* +.*:192: Error: .* +.*:193: Error: .* +.*:194: Error: .* --- a/gas/testsuite/gas/i386/intelbad.s +++ b/gas/testsuite/gas/i386/intelbad.s @@ -182,3 +182,13 @@ start: fild far ptr [ebx] fist near ptr [ebx] + + lar eax, ax + lar ax, eax + lar eax, dword ptr [eax] + lar ax, dword ptr [eax] + + lsl eax, ax + lsl ax, eax + lsl eax, dword ptr [eax] + lsl ax, dword ptr [eax] --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -833,6 +833,8 @@ enum MOD_0F01_REG_3, MOD_0F01_REG_5, MOD_0F01_REG_7, + MOD_0F02, + MOD_0F03, MOD_0F12_PREFIX_0, MOD_0F12_PREFIX_2, MOD_0F13, @@ -2115,8 +2117,8 @@ static const struct dis386 dis386_twobyt /* 00 */ { REG_TABLE (REG_0F00 ) }, { REG_TABLE (REG_0F01 ) }, - { "larS", { Gv, Ew }, 0 }, - { "lslS", { Gv, Ew }, 0 }, + { MOD_TABLE (MOD_0F02) }, + { MOD_TABLE (MOD_0F03) }, { Bad_Opcode }, { "syscall", { XX }, 0 }, { "clts", { XX }, 0 }, @@ -8198,6 +8200,16 @@ static const struct dis386 mod_table[][2 { RM_TABLE (RM_0F01_REG_7_MOD_3) }, }, { + /* MOD_0F02 */ + { "larS", { Gv, Mw }, 0 }, + { "larS", { Gv, Ev }, 0 }, + }, + { + /* MOD_0F03 */ + { "lslS", { Gv, Mw }, 0 }, + { "lslS", { Gv, Ev }, 0 }, + }, + { /* MOD_0F12_PREFIX_0 */ { "movlpX", { XM, EXq }, 0 }, { "movhlps", { XM, EXq }, 0 }, --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -574,14 +574,16 @@ nop, 0x90, None, 0, NoSuf|RepPrefixOk, { // Protection control. arpl, 0x63, None, Cpu286|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex } -lar, 0xf02, None, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +lar, 0xf02, None, Cpu286, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } +lar, 0xf02, None, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Word|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } lgdt, 0xf01, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex } lgdt, 0xf01, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } lidt, 0xf01, 3, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex } lidt, 0xf01, 3, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex } lldt, 0xf00, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex } lmsw, 0xf01, 6, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex } -lsl, 0xf03, None, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +lsl, 0xf03, None, Cpu286, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 } +lsl, 0xf03, None, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Word|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } ltr, 0xf00, 3, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex } sgdt, 0xf01, 0, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex } From patchwork Wed Nov 23 10:34:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 24876 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2707915wrr; Wed, 23 Nov 2022 02:34:48 -0800 (PST) X-Google-Smtp-Source: AA0mqf58t9bRkRzYI5u20iBmA4JYjRGi2cdRqXOGtEIS47gWkUG5uwtjcq4kfbrwALedAkEFvK1K X-Received: by 2002:a17:906:774e:b0:782:55de:4fcf with SMTP id o14-20020a170906774e00b0078255de4fcfmr23218479ejn.85.1669199688143; Wed, 23 Nov 2022 02:34:48 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id z16-20020a05640240d000b004607378ae65si16463791edb.160.2022.11.23.02.34.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:34:48 -0800 (PST) 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=ieOOBSOs; 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 CADA93852C53 for ; Wed, 23 Nov 2022 10:34:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CADA93852C53 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669199685; bh=crpkNbXZD2Gxc67OZdyHDUvBEvhfJlIYhdw7lRhO814=; 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=ieOOBSOsnmvPv4i6vPvonxKZnz/L1NoNaSwhBXeXpm3YBCz2uLZiKlCEppXm2sSbQ ML+Iz5CWuV+sTUZ6AZW4UWcFxiGWIokdEs/t0Za7giPf98m1pQFtCQzumBo7T2j2gw d75KoLBEis6vr3t9AlB9fD6GDp3aI08q7tU2jIYY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2045.outbound.protection.outlook.com [40.107.20.45]) by sourceware.org (Postfix) with ESMTPS id D431D3853D68 for ; Wed, 23 Nov 2022 10:34:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D431D3853D68 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iDpfy7zRCvdIZbYcfsjELR9L6VcdC1bNouyznALb998A47pXPqfLks7jiu/cfBktpIFNk/Ke5yO1PZCqaeoCzl7+qj+zWg0HbsjSn7/TK7SXCiWAggmffsZqyVg/GR0MrfulSmJbrA1dIcTU9trMafdk/QGz1SklMv/LP5dkJtOMJGRZOuJ5J42/rtVZdczGvAtyuJCsiUBO5G4T9t9Toq97uWnHDrFGau/PPBkOPCszGtkRm3tbIhN8MgF8E7xdUktQHlATmMxH2uoy+WCAkBtg8PMAMW6a5DnSm4hoD653aSkJoiwcRD+QytVT2BlnoxXu9Uy2e3FlOP8wpFopxQ== 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=crpkNbXZD2Gxc67OZdyHDUvBEvhfJlIYhdw7lRhO814=; b=lDPKqk+VRH3/MZarxk1SeGa3vGSIaqaN3XqoDxaoSkwAw6YjtlcrQyQhwwA2TdMrsy/C2bcyTDtgfJMpiUC2vMQy3VPkGJPuegoLvglNdgKBvDPseSLFn5vzLq//wr2iUlUiRrdSERp98GK2la6TIQpEu0kNO02TTARuwf6rQRsd//7qexVTFc0iSnCPMmQnj+dxDi0Sg4n2ILCYWDdZ1SC7D6l2aoARsIfvQal5kVFjzuG4xlso9aS0EZGF37PjR4yrMS/SEvpoY3NQjndbtZfAK8sKKzmhFs1ZHBxpfTkZCV3MIoE1Xhd35ZAuIy04ye1o2gGbRLdlowt13REG5A== 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 DBAPR04MB7414.eurprd04.prod.outlook.com (2603:10a6:10:1a0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Wed, 23 Nov 2022 10:34:35 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5834.015; Wed, 23 Nov 2022 10:34:35 +0000 Message-ID: <3dbee940-c57e-f89f-fdb1-730b275c0c17@suse.com> Date: Wed, 23 Nov 2022 11:34:34 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH 2/3] x86: add missing CheckRegSize Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0086.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::13) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBAPR04MB7414:EE_ X-MS-Office365-Filtering-Correlation-Id: 660dd1d2-af74-41bd-7823-08dacd3e5093 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tf9Dm5TYcI8YKqP9xvASPI8dOodLe2A+mKzq4gpJGHEb4cuJYXWDpYofGn6eJgLoggEdNCc7CIjg3fDESAHVHXx3XxF0OSLIqf9lmzlnUtIZg68OFT8kkTv+jQr9cJRt5GGOZRNqJ3VC5JgskEiqTGA9Z2LSgd3IY98pb4vd0otJPfpoWcM02lR1//+z8NzsOPQR056SUxhgyXsAuaQh7PVpHNHwRgFBQUiSzuMxYkpKAxtsYxXqOxTTxoO6offqfI+NA6h7sa48CcDrjuZmDveCgGLHfi414odW8M52372kVJABqG+n86SQc/72LAJzfjwab0AyFaeyJUoOfoTmaNhvLTDfPS3bPpIX61a1sJwbn3llWLu7Isj0mOwH/RLHtcu3gXsltHDNnxOAKS3iRQC9xiMvRPe67Qq+NRBUmGDXiFZ+Xw/k986PI1/lx8Hgl1VrzQvZggjWMThuIbWxD+orR2KtdQwDfdNJu7wgOgrsbLdxccxUkGk6nyDqPwQKJc0FMFnNsA2XvOcxT/GUGUSEIu7Zy2ooXLPjtE7LC/tDwkVNk3kg88utRWxTLBxbEm2+GLDRYNExDhs2FnAuabEUl1nz+TcUJo5QX6G7OvQ/tPUl/L/ITtyH9dMklzGZnm7+pVjpC/Hy8RWq7QXKpyOtXUpUOdJ7lqZZdt0I6xltkiqzeFvpEMguRDIWtNpd8+B/ehY4/JzPr4mxLyWqsE2oNQMqMXmUETY3M89RB00= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(366004)(136003)(346002)(396003)(376002)(451199015)(2906002)(31686004)(2616005)(66946007)(41300700001)(36756003)(31696002)(86362001)(66556008)(6916009)(38100700002)(4326008)(6486002)(6506007)(8936002)(8676002)(5660300002)(66476007)(186003)(6512007)(26005)(316002)(478600001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5V9TAkThXDT2IIJmq9q+LFlMfEz7?= =?utf-8?q?gtgaufRYDujTdXse/SRV2hXQhVWHtGS0HB0WE0K1zGDwmxhhn3TtpuoObmzu/w/kJ?= =?utf-8?q?ULPCCyuhR1aZPTFu87EqFBROE0o4L3IqH961Kby/3RqoCm66yM+2f/w9RHmCfoVzK?= =?utf-8?q?/4suMI5M780VNftsJm1PKdlK43Yam3d/x544bemqeJiw2wiQ7LlsUkhK72LBmAc81?= =?utf-8?q?hrrMQr49td0IEKHEVwB1qtPoBh7VOnqSzoh1tAPSVAdb6lFSQ3TMogcrubSOOJRqO?= =?utf-8?q?khiND3weFDGc6TaszbvlG1To4ZqZKGcOuGQS+6Il3to9xNZ+hxy2+cjApNyB46N+Q?= =?utf-8?q?aEMiGNbqyXQltSkCqRFK2FB+1kUmmV9fT1WRard27j6L6eTCDOYaEwyqJD9j4gLnJ?= =?utf-8?q?Rzd0UnW716fMid8K6/mSmA02G2C1ebioHnw3BYdHGWXx1G4ODpLupOWUM7BqAg0Eg?= =?utf-8?q?CfZ21mBQelvYJAqBEslK6YTT8EWZkZe07Bw2bQ3uzo4U+PtHKE0wnd5hvJolCg6+O?= =?utf-8?q?cwOMiILRtiD2CrFvpGLPWtkJFlXTO+02IYyx5t6npdaCHogTrfmQfkpSrhOgYPhYd?= =?utf-8?q?QiQ3kEezFeRvQhrN8gFYux49xBAqTmp5b6OiHMBqUo3cSbhuyRtFs5j7ntJE/JdbF?= =?utf-8?q?/iZx/erBYQk4SI8UD9mooONFNlvpxp29BBtDxYxw56Ka1Q2A5qV82vJ+nIkysBKFY?= =?utf-8?q?N8SIMojbsVzZwLKpu/NGH/qKJENmDtCC+9kATks8sBikRvVAhMDPR+RwKYCto3MT3?= =?utf-8?q?lHJjFFf11qQR7GcoOaYo40edTRSWUDqGDUHvGoanecBqgL/JVM48FqF/SnkKV4s2C?= =?utf-8?q?JGJgEauYuCoOJVqs9oykMA0VJIHxUHAzzn7A7DMFMO81yNtjd87LFGu36pbpNAt91?= =?utf-8?q?8vu3gunUPWPPNlq6uNO979OKhUShNmmvSULsntMcWjZLyXTyHjRk+xMLsYgwqEVpg?= =?utf-8?q?2dEbO8FS376PYUR9wiP1qmBJlxGkV4MpgKTuVRbprJR7hL1QEACM+LR7ZOqJT0FgK?= =?utf-8?q?1A/hvSPp3CLXr4btID0NKN+9KvJ5Jn82hUJswY2apzOz+M089bZpcCCF2AeYXJJq3?= =?utf-8?q?xkfQQYyHPYNxJA258zMa3qUfaWY70DexYcTXSHoLMA6EBwnOc9umglGfUzgbykcuj?= =?utf-8?q?TsNBuGAB30TfJSSYkecKGZUznY1GfKmqVoZuA9HxhotrMNrJKaga0KYz8s+UfuOt1?= =?utf-8?q?8k28WibM5OuoKVofJ2CJO0WlfZ42AKXDiieyVLxjZM0FDbkuwbikCmwThxIJ1wgCw?= =?utf-8?q?jUEqaouOebJtGnY2Edwe8T/XjSlTEc4gbmwQUX8lGx+fOGBoOJto8EZQ8QCz+NkHN?= =?utf-8?q?66R8Wiu87elmeJpxUQCv4liBpcXGJxVGyxmS3rddTHwhBmhQaQcvg+VPIntK7vjvT?= =?utf-8?q?+E15h5+L4XYcoVIz33EC0FUI2B3EJyUbsbpPRtmBuHyEcCgqqfU087AIhftfwdBVX?= =?utf-8?q?3WVXo08FygeyI9brSUC8gooN/VCMmkPnYQgLyoOli1VbGHTANE7dEF2Ih4D6WD1Rw?= =?utf-8?q?I2EbmHjwrvCw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 660dd1d2-af74-41bd-7823-08dacd3e5093 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2022 10:34:35.0948 (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: Q38YiItdjLpBbcGjfosY8ZbyDoo5crrApO8GFQSfJqZFCMozOWQ5yW7NoSI9RcrcsV7lCeS9VxrUupE4i8/eWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7414 X-Spam-Status: No, score=-3029.2 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?1750282731748282536?= X-GMAIL-MSGID: =?utf-8?q?1750282731748282536?= To properly and predictably determine operand size encoding (operand size or REX.W prefixes), consistent operand sizes need to be specified. Add CheckRegSize where this was previously missing. --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -928,11 +928,11 @@ ud2, 0xf0b, None, Cpu186, NoSuf, {} // alias for ud2 ud2a, 0xf0b, None, Cpu186, NoSuf, {} // 2nd. official undefined instr. -ud1, 0xfb9, None, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +ud1, 0xfb9, None, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // alias for ud1 -ud2b, 0xfb9, None, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +ud2b, 0xfb9, None, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // 3rd official undefined instr (older CPUs don't take a ModR/M byte) -ud0, 0xfff, None, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +ud0, 0xfff, None, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } cmov, 0xf4, None, CpuCMOV, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } From patchwork Wed Nov 23 10:35:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 24882 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2708268wrr; Wed, 23 Nov 2022 02:35:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf4RFkWrF4HXlVKZOqEq/xkG7iNTi18HKO6mqSZxtrs6uLEQVQPLM2zXoJfRscsoThfttIcQ X-Received: by 2002:a17:906:6782:b0:7ad:7d50:dec2 with SMTP id q2-20020a170906678200b007ad7d50dec2mr24556087ejp.37.1669199731041; Wed, 23 Nov 2022 02:35:31 -0800 (PST) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id f12-20020a0564021e8c00b00461a7bb34c2si3524089edf.473.2022.11.23.02.35.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:35:31 -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=iQFLO0kK; 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 1DE463852C64 for ; Wed, 23 Nov 2022 10:35:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1DE463852C64 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669199729; bh=opWRivpLZoUkZ3zjOWsLHc1loB90Pij+dpRCsXsYatw=; 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=iQFLO0kKeXprs6aq/pUiGAQuOZ1G2/32aQwdDHZfgP4msD7gmkw3pKAlvWmZmyV3z gaZoBlumH6Yx6mo629Bt6dN2R8O/MCS1LWoABhbQWQwsi3+fef/JswbZ798vHC+VUT gnMdtjb/fi0Cy+6gkFWehRweToWWG5GJ5In0Flqs= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2073.outbound.protection.outlook.com [40.107.247.73]) by sourceware.org (Postfix) with ESMTPS id 5D84C3853D50 for ; Wed, 23 Nov 2022 10:35:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5D84C3853D50 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Awn9F4tHcSBmMuQDYMIEzd2r5jA1Qmr3RUrpAZLwNSy3etkWBfyq/ON+ueuWnJB2ZLmMayOTMza6hv3sfRltxMWEBnvRT8m3xWpOk47k+O0+UHX2ZXPmdUDOe+UfWdmmlBvcIXOCVXFpMs34c1bJ8ELIZwKV8g+crdy/DUHh8ke9xHx7XF+ZZ3DTpcgutSISDy9r4rCw1zwTtIU7idsMnddz5pcALLqCaSse6TdMsK79uGRvVc5t5uzSTBPBIbZ0dGmA9h6il6ps/cfI3rC1uLSfsIVQ1C0nuJQgHRDc5V0GdXW+YBk0zVvSecqtz6UtwfRIcTFPNuvCNfVB7h4wUw== 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=opWRivpLZoUkZ3zjOWsLHc1loB90Pij+dpRCsXsYatw=; b=Wu/KpVRJH6ZuBQvJP/Dn8pzgq/AzJSiwR1lOGfTA0buDxkoNPq5SIt6lDCXbFZtEG/4d9NKvl+CGWiIkUIYOdJcz2DBRDKTQgbKc19AfYmuXe5W5KCAP73P5OkndXnVaW4aYadlfE/6lb7BB1yomv36SercGkdcIdV/PigrcAHQKLYUo1N4YeIIFOGyxPFJKzwtOihHyE9J9/vPjrnvri1phW+f4G8IkinPzcIU4gvgVbeQy5pPtMQ0TG2JuYt37cUnMLKRpR5GRaps/lAiPFjk/ND0wbx6pMfR+04z7ZuTorMCh/MFhBR77K2Sgwv8vTFiG7DZM7Pk9Rd+tRSkyyA== 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 DBAPR04MB7414.eurprd04.prod.outlook.com (2603:10a6:10:1a0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Wed, 23 Nov 2022 10:35:17 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5834.015; Wed, 23 Nov 2022 10:35:17 +0000 Message-ID: <0168ba4a-766c-7cfe-7917-53259f846da0@suse.com> Date: Wed, 23 Nov 2022 11:35:16 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH 3/3] x86: widen applicability and use of CheckRegSize Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0059.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::21) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBAPR04MB7414:EE_ X-MS-Office365-Filtering-Correlation-Id: ddac9a79-804c-415c-aa59-08dacd3e69e5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oD5ZK/SBa46jNP6zMz9RYfLNOWIsJQU6bg8xDrd4RsaO6EKr2e+YcZBeqINEBM8Wmw9MOfMDT3vfSs2rX3HZ1+f8/2R4+3j7Qt08YfhUncOgFky4r+8bsUUjZcg3ZftzSELOKCBqyglgKLxbTADuClLorBLcN+mIB7uyGAKO/orrs6zwOJ66RH0sBVVUu1OFiFeDnT1udlQGpj/JL2Kq4+d9DRnJ+HI+eZz3V8kdOjib6AUGXaOrfJGeSxKo2aBrV8qLGywGGtQ6McMqWVa33ijHq/vggIId8J6GlIzwyNpBxsDH+niwqn+NsPHSpDBn75HjRzXxDUKkNULih5JWSffb0zxDk/ebPHMYaHQGvIeCC+iwCyHCInasn1ZhQskBCvK9nhEnMwOSnVS6+fTWOYTMzrFUktaiz/VJTnu4xw7JWB3pkOYWln0BAgx9UeZy5h0YDO8VH7WDN4ITWXAG4MjXq5BZYVn/aRYhi1339XLzAcfQ5siRpKyOf9GnPO1CAKIgX5a7uy+F+0+oT3b2knFCR/FMn3XDE99rEWfoYeWKSg3HWy2+jVBwNq35g2tzerGsJj2Rhdx80ZNfdhtd96gYzYkk9JmknpiNeHS3BRkqLzZXV4MWJcn+fdO56QWsnHPeH86BjpXmW7aoUkg6SvtGoyD8tI5/n/WBmPlkI8FfuaHXKqbdEtlBeAbwOmuD+H+50R5XkZDGyhnEpdy11paviSxmJsrcf128bZ4cw40= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(366004)(136003)(346002)(396003)(376002)(451199015)(66899015)(2906002)(31686004)(2616005)(66946007)(41300700001)(36756003)(31696002)(86362001)(66556008)(83380400001)(6916009)(38100700002)(4326008)(6486002)(6506007)(8936002)(8676002)(5660300002)(66476007)(186003)(6512007)(26005)(316002)(478600001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?XIBEea2QFpcoLPzTUdhw0/wPv5V6?= =?utf-8?q?seIWtT+JLwEsBQKQkKspnZLybZWVURTrq/NqVC8qum/0RP7v0XTKtAs8B038PTrkI?= =?utf-8?q?3Wx4O04Kut28Vxz/sXIJQvF44tjuF+WM/OlHuZ3arv366XAYGEw9BbYZYve05vGU7?= =?utf-8?q?mlHwzA3SrWpwWvRhCoKFMwOfLF/Z+BoeqhbQahQXKTj0bfalQGV4/5tR2nrGQGuhv?= =?utf-8?q?zVaw8ODQN+ysPxQ0sTB4ZLuA8NcfLHalT2jwbmiOj0CJ8+ad/zS4IEgoPpkPK7fcI?= =?utf-8?q?wcq6Uc0PfdQcQYkO3/CWV1cP/JnhZQt/bfoGPcxVZ33yAw7wuq/NAANLycvrDuyyB?= =?utf-8?q?6YgGP3xzNiEYsAilrxcolvRgmeCP3E09op681nf08uTJs7sIIQHGiEzwPX/AIdfiN?= =?utf-8?q?eweieS01uXNLh4tlb+OFcfN0GAMzycydyoSvRoKNB3d97Eo4FnlNqFT0XjFMCht1F?= =?utf-8?q?eHsroZJfFHbckeBa1l3PP56nGDONlsmEhFvKsiHBLrqHV3cZrYZhCsNq0AS820/zc?= =?utf-8?q?JoVAMsKL3jT2DrQUtcFoQYqpxN7f/kaOQelr81smwGNRFsWGz9NE1C2LX0LJRbdbk?= =?utf-8?q?tN2gS4HjcUONSuVd1hGqYemGG9ab/gbOeuVaTtEMfh4D0JB+PXksdOWJCYBSDhevb?= =?utf-8?q?DsyUEGHW76fOpwbyk8NPAyDmIU+uC/2m9HUhUcSoeXR4Rabn1ZKwG5hEpIJY9Hw9C?= =?utf-8?q?p+31VCNCW5o6kWaMTBC9YLmTumpwBeLqv+nw7gRv4HkzEu6RHuxqdgMmYx4r09Ndw?= =?utf-8?q?DEy3Mg8udgVngLthKhY136B9pCOee5dQ2qpZC8Go49Mr7yGoJcGi1PiY38ZtWzKJA?= =?utf-8?q?jwN3E1d+uDipYQSfenZwNM4UjSTlry/9Y8bGApEDyIQsFTy2bzjR8vyU1pbt98iqt?= =?utf-8?q?f0leATc4Sj7snIIRyX+82lpjSpRhI8W47/3zH29WPqjtRLzJQ1FHdyVZhlJlo69Pz?= =?utf-8?q?63Hnpwk88G7EtC/MJGusAGlVWD5M+BDK/53l/nFIM9+qVk6/hshqxFCcfLO/cIR0z?= =?utf-8?q?DMkxEhXMJHPIs7xCHnajuszecWlHowN8rXkstooCBoWpZHecyoQTHJOnVgOzV3Hq6?= =?utf-8?q?RAeehEcAcCfAAOtUSN29Io/FxZYEHZerTXVB+Svn0ktlfQv1tDg9QYuHWuwtPgm3Y?= =?utf-8?q?OpJCLCjPTNgssCZtRUrCZHIIgo7Qw4bk3jAMzIsYkCrqv+I6TsE/uBve8uQcoUOPs?= =?utf-8?q?WfDSkX0EeP8Veu7T3sS/VphzmdN2PiScBQ0uXyziQ7mZIQnZZdk2fR5UhcvSogsME?= =?utf-8?q?lT6slZPqPLQTcIibmweM47HV0Y2e1Fr1PNoS1sAcQxzXR6G/ZmWrjjnA3TDVT/eTr?= =?utf-8?q?GfOBogDeb3oZ8phiDfw6uGkHK8LLFGZQ8ey9KltuwMm2T4DZhph3bvynCL4O/bSUY?= =?utf-8?q?R5P3a9IQnDyKa0cuDiVesr89Zw9o2iQPj47y3U+HMmnnoGX18ZIJFKE+jBMvMfRBq?= =?utf-8?q?StnjVI68c705wMzF74WPY3JtJViX9EFnXQxdsMePGEA/dtRfHz/9GVvXM/RRPuqmP?= =?utf-8?q?8uBECXr4hzk+?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddac9a79-804c-415c-aa59-08dacd3e69e5 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2022 10:35:17.5921 (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: do9d0ztwWm+JigXkXlF+NaDYwXXmGHh3eqXCwzo86+aB7Z4jCCdA0AQqwp5vf7yotsK1JSrLnQnyIX1MKqvrgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7414 X-Spam-Status: No, score=-3029.2 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?1750282777243184897?= X-GMAIL-MSGID: =?utf-8?q?1750282777243184897?= First of all make operand_type_register_match() apply to all sized operands, i.e. in Intel Syntax also to respective memory ones. This addresses gas wrongly accepting certain SIMD insns where register and memory operand sizes should match but don't. This apparently has affected all templates with one memory-only operand and one or more register ones, both permitting at least two sizes, due to CheckRegSize not taking effect. Then also add CheckRegSize to a couple of non-SIMD templates matching that same pattern of memory-only vs register operands. This replaces bogus (for Intel Syntax) diagnostics referring to a wrong suffix (when none was used at all) by "type mismatch" ones, just like already emitted for insns where the template allows a register operand alongside a memory one at any particular position. This also is a prereq to limiting (ideally eliminating in the long run) suffix "derivation" in Intel Syntax mode. While making the code adjustment also flip order of checks to do the cheaper one first in both cases. --- CheckRegSize now firmly isn't an appropriate name anymore - perhaps we want to rename it to e.g. CheckSizes or CheckOperandSize (and then better in a prereq patch)? --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2192,7 +2192,7 @@ operand_type_match (i386_operand_type ov /* If given types g0 and g1 are registers they must be of the same type unless the expected operand type register overlap is null. - Some Intel syntax memory operand size checking also happens here. */ + Intel syntax sized memory operands are also checked here. */ static INLINE int operand_type_register_match (i386_operand_type g0, @@ -2202,18 +2202,14 @@ operand_type_register_match (i386_operan { if (g0.bitfield.class != Reg && g0.bitfield.class != RegSIMD - && (!operand_type_check (g0, anymem) - || g0.bitfield.unspecified - || (t0.bitfield.class != Reg - && t0.bitfield.class != RegSIMD))) + && (g0.bitfield.unspecified + || !operand_type_check (g0, anymem))) return 1; if (g1.bitfield.class != Reg && g1.bitfield.class != RegSIMD - && (!operand_type_check (g1, anymem) - || g1.bitfield.unspecified - || (t1.bitfield.class != Reg - && t1.bitfield.class != RegSIMD))) + && (g1.bitfield.unspecified + || !operand_type_check (g1, anymem))) return 1; if (g0.bitfield.byte == g1.bitfield.byte --- a/gas/testsuite/gas/i386/intelbad.l +++ b/gas/testsuite/gas/i386/intelbad.l @@ -169,3 +169,27 @@ .*:192: Error: .* .*:193: Error: .* .*:194: Error: .* +.*:196: Error: .* +.*:197: Error: .* +.*:199: Error: .* +.*:200: Error: .* +.*:202: Error: .* +.*:203: Error: .* +.*:205: Error: .* +.*:206: Error: .* +.*:208: Error: .* +.*:209: Error: .* +.*:211: Error: .* +.*:212: Error: .* +.*:214: Error: .* +.*:215: Error: .* +.*:217: Error: .* +.*:218: Error: .* +.*:220: Error: .* +.*:221: Error: .* +.*:223: Error: .* +.*:224: Error: .* +.*:226: Error: .* +.*:227: Error: .* +.*:229: Error: .* +.*:230: Error: .* --- a/gas/testsuite/gas/i386/intelbad.s +++ b/gas/testsuite/gas/i386/intelbad.s @@ -192,3 +192,39 @@ start: lsl ax, eax lsl eax, dword ptr [eax] lsl ax, dword ptr [eax] + + mov eax, word ptr [eax] + mov eax, qword ptr [eax] + + mov eax, word ptr [0x12345678] + mov eax, qword ptr [0x12345678] + + xchg eax, word ptr [eax] + xchg eax, qword ptr [eax] + + add eax, word ptr [eax] + add eax, qword ptr [eax] + + test eax, word ptr [eax] + test eax, qword ptr [eax] + + test word ptr [eax], eax + test qword ptr [eax], eax + + movnti word ptr [eax], eax + movnti qword ptr [eax], eax + + movbe eax, word ptr [eax] + movbe eax, qword ptr [eax] + + vmovntdq xmmword ptr [eax], ymm0 + vmovntdq zmmword ptr [eax], ymm0 + + vmovntdqa ymm0, xmmword ptr [eax] + vmovntdqa ymm0, zmmword ptr [eax] + + movdiri word ptr [eax], eax + movdiri qword ptr [eax], eax + + aadd word ptr [eax], eax + aadd qword ptr [eax], eax --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -142,9 +142,9 @@ ### MARKER ### // Move instructions. -mov, 0xa0, None, CpuNo64, D|W|No_sSuf|No_qSuf|No_ldSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword } -mov, 0xa0, None, Cpu64, D|W|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } -movabs, 0xa0, None, Cpu64, D|W|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } +mov, 0xa0, None, CpuNo64, D|W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword } +mov, 0xa0, None, Cpu64, D|W|CheckRegSize|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } +movabs, 0xa0, None, Cpu64, D|W|CheckRegSize|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } movq, 0xa1, None, Cpu64, D|Size64|NoSuf, { Disp64|Unspecified|Qword, Acc|Qword } mov, 0x88, None, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|HLEPrefixRelease, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } movq, 0x89, None, Cpu64, D|Modrm|Size64|NoSuf|HLEPrefixRelease, { Reg64, Reg64|Unspecified|Qword|BaseIndex } @@ -176,7 +176,7 @@ movq, 0xf21, None, Cpu64, D|RegMem|Size6 mov, 0xf24, None, Cpu386|CpuNo64, D|RegMem|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Test, Reg32 } // Move after swapping the bytes -movbe, 0x0f38f0, None, CpuMovbe, D|Modrm|No_bSuf|No_sSuf|No_ldSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } +movbe, 0x0f38f0, None, CpuMovbe, D|Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // Move with sign extend. // "movsbl" & "movsbw" must not be unified into "movsb" to avoid @@ -302,7 +302,7 @@ cmp, 0x3c, None, 0, W|No_sSuf|No_ldSuf, cmp, 0x80, 7, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } test, 0x84, None, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|Byte|Word|Dword|Qword|BaseIndex } -test, 0x84, None, 0, W|Modrm|No_sSuf|No_ldSuf, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } +test, 0x84, None, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 } test, 0xa8, None, 0, W|No_sSuf|No_ldSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword } test, 0xf6, 0, 0, W|Modrm|No_sSuf|No_ldSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex } @@ -970,7 +970,7 @@ fucompi, 0xdfe8, None, Cpu687, NoSuf, { // Pentium4 extensions. -movnti, 0xfc3, None, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex } +movnti, 0xfc3, None, CpuSSE2, Modrm|CheckRegSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex } clflush, 0xfae, 7, CpuClflush, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } lfence, 0xfaee8, None, CpuSSE2, NoSuf, {} mfence, 0xfaef0, None, CpuSSE2, NoSuf, {} @@ -3053,7 +3053,7 @@ cldemote, 0x0f1c, 0, CpuCLDEMOTE, Modrm| // MOVDIR[I,64B] instructions. -movdiri, 0xf38f9, None, CpuMOVDIRI, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex } +movdiri, 0xf38f9, None, CpuMOVDIRI, Modrm|CheckRegSize|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex } movdir64b, 0x660f38f8, None, CpuMOVDIR64B, Modrm|AddrPrefixOpReg|NoSuf, { Unspecified|BaseIndex, Reg16|Reg32|Reg64 } // MOVEDIR instructions end.