From patchwork Fri Jun 16 10:15:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 109009 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1223715vqr; Fri, 16 Jun 2023 03:15:46 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6/pbdu71RZuNPFnSm6kD9i6frj5pkZrBNFZ71llqPHH4ogaHFTG1yZF9TXL4KNFNcfg4cc X-Received: by 2002:a17:907:1613:b0:983:c441:67e8 with SMTP id hb19-20020a170907161300b00983c44167e8mr1571382ejc.41.1686910546234; Fri, 16 Jun 2023 03:15:46 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id u6-20020a1709064ac600b009827e183e8asi2867015ejt.420.2023.06.16.03.15.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 03:15:46 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=bu8AYaEc; 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 8B990385771D for ; Fri, 16 Jun 2023 10:15:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8B990385771D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686910542; bh=aneirSal9B1uhN9CepluT8uNW3OTrhx4WHdcmYVXUBE=; 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=bu8AYaEcOVyn/stNZmpLR+NSwYQhuLZHJt65MOrPEYcCm8Q5+Pz2gJ8ST/vIgUjAk 6Q71UsYmlhpoD2U3YEtk8XBJOcvTEPj7TONoOgQJ0XNaWPonHa/6/LB039h1XgieDW zP5dI3+1AnylKCZAlmEx+/U1CwXTFo1U800i1GbI= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2061.outbound.protection.outlook.com [40.107.21.61]) by sourceware.org (Postfix) with ESMTPS id 0FB243858410 for ; Fri, 16 Jun 2023 10:15:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0FB243858410 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=atE8N2mx3/r3dN5wi178c3t4QfQkL6B3z9hw0ZIriHFyu2SSu7oHanpWPDfor2NX1hhcHkmnRd8ql2aUt/keVx9LYnTxx2wYbs1wHtz5Bk1iBTFZoYVpBP4nmHx9cVLjYAZpiAqRbWWjds0eG/ZWbm8b5rGkll0re5skVJ/re2m8lMVjGyF1l+8zTM6ADPSNPAgJ2oFrChaMOT1Tmizq3N4nPXJAWEnOw04j1x8rru9aoXdvHPZds/+2cs245f36/2vNrSnvfSpZj3UcwEkgLOkEL+n/muJr6HHAB+KzP7urQ2UWgJnUtKPOePBGoZUbY8G6GtQ+ICZiewdGBXhnaA== 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=aneirSal9B1uhN9CepluT8uNW3OTrhx4WHdcmYVXUBE=; b=T1aPcm4UmybqcR/g3z6dJwKC/Fgk2250vLblSqB+CSIggHAdPfxkvMu3S7/kg68vOy50IakhVn6GLylmzTHzSW6+RlaS82zfvoC9CzfZq3TvFuNsAC84J6plOsvkjKRDrpBrGos2MIr23j3ji7eTaV18h+e1jRfXtJS3kPyW46fwN38/m+Y/xc3iQzyb76059lnNsPXOzytN9ZK3STWrjLreiY+nFMpuDBBejJLtfIg0oGyK/tj2BffDIOcwzYSQrf4W7tnVM5UX7P26D5oCGNcNNS/EvxosLTMzaaj5Q3vO5aTdA9hXP3RXM0ow6wJ8sC9QdIcvdnHSm7jKUcMwKA== 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 AS1PR04MB9429.eurprd04.prod.outlook.com (2603:10a6:20b:4db::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.29; Fri, 16 Jun 2023 10:15:31 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 10:15:31 +0000 Message-ID: Date: Fri, 16 Jun 2023 12:15:29 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 1/5] x86: re-work EVEX-z-without-masking check Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> In-Reply-To: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> X-ClientProxiedBy: FR3P281CA0097.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS1PR04MB9429:EE_ X-MS-Office365-Filtering-Correlation-Id: f332f22f-9ec3-47e8-22bd-08db6e529d85 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ehh0zQCgwHpRij3a86dnz18I+NGoXtUcxL55iT4zB48wbzOnqPDlN0sF2Dx3Fs2RxtIVSuYIxIXxOBEhbV5ype6Z9f+6Ejr31QZT+e4Ni4OcLWZii5GrVUeRHBTB48h0gYh3bch9VA4pQBi6jrBjiaquTxwCKV28Gc/RL3AFJaiJf/UhfkvlGKxyyLJuv080UNqf8DesmEZC6y7DGZo07SRCBpxAGlYre7GdVW8yareZfMWRjD2KduW+pECQt4A/5w+SkZ3kdXzwgg5ggsoPVWC0ElJY8PHdTghab2mQKcyCxIhTnbW9GUa7V2I0N8GsZ41E+ApAS3uUOGMZFRvilaYf6oacmo+UVe5QAaw0dy+t6kqZDWbX9yfdunbeNgpku8+MdB3Gv2ohtyDE/W2TAjWFRgVhaQ8R8F9hhXw96crYkLvLkdMokdcj3utQkGedkd2JXguZtpCkyyJb6uVpn9ystxUrga3BGuIIDkl7uP8KLhvguNL6u8W0BDgbnldVBGCFLt7fpDR+uHhgAE2cxynQpNaKUn9fJtpLjF6F/7O91chloo1QFKoSgBXQK6lNVng0JE6JQKot2nW6TCcZGoSsiWEMFSTeoLL70THeSfcv1S0IDwbQ9mvaRdtdU3ujhtPixvw03jHNlfEEZn3jtA== 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:(13230028)(366004)(136003)(376002)(346002)(39860400002)(396003)(451199021)(478600001)(31696002)(86362001)(6486002)(316002)(41300700001)(38100700002)(66556008)(66946007)(4326008)(6916009)(66476007)(8676002)(8936002)(31686004)(2906002)(5660300002)(186003)(6512007)(26005)(6506007)(2616005)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?HjoYPVyTwF6HoCf1L5WEJfmN1DyZ?= =?utf-8?q?fhHkENFCEuRLYrwhiaL0sNEO96ptf4L3tqpafebuZIaI7AuiVcqeNNvtn8ZV+7ZNX?= =?utf-8?q?W5XqwzSH9Ken5ZAOtGayjpnycAvCfqCjzkOOyC15dDg/lUdETq19mms66ExoCGMPq?= =?utf-8?q?a5gFDGhqZ4WSVYd/pj8zg63FBr0jX5dVgjRDTdI/69Q20apHk9klbPr37u66hf04v?= =?utf-8?q?PNHxsOWSWQDFA/rGRK9t6MY0c0UZQC4f5SpejMjrFyPoB9KFB3cAhvNuaWs+z+HZm?= =?utf-8?q?T4lIEop2k0Ah1GwmEUzYYjD6N6oGcDHRnr9ADnGX33BhASqiYWfuoh0/DsNls7j+j?= =?utf-8?q?B3knPt9ZEESy6BheqLaFmQdvAW4Nnw7Mnw4EUvsy98GUavAZOgNS/UZ0l6bdlGoSx?= =?utf-8?q?jeaq/h/aAXFJMOn2CAT+MyLIBy9eGPWnD3x+TR8Mayy+TgG6Q5lXZfyqaloJimpt2?= =?utf-8?q?i9H/mgh+WZnc0HDEp/HH9z/W92r4XEnXwZvSVEYgwbZktth12KSkYKvXmpIDNei2/?= =?utf-8?q?DIVtxcNdUISe0wulCamlYFlswa6hOK6zIQVksVRI2evtTeIWW9wGpRuFBCLQep/Ib?= =?utf-8?q?rnKBgHJgV0/Ed9nKAVMNWiLqMU5F0bQzEksId6Gwn576rgCh6N7mk2lN4rowPHGw1?= =?utf-8?q?/wF/5nY8C+zLrsHCfJbGHQb3eOhpPrY0lm6Ow1iOxNU1p7FaH5Sc84aZJ2Bz1mm1y?= =?utf-8?q?QKAcEJoku8Rnu9w4u3Q8UlbYJWgBXULnhFx9sJ6USAcNx6x/WTxMINrwAgv3pilSX?= =?utf-8?q?3vcJqnZIi7bIoL/3Rwm7ZJgcvfnAoF0jf7tKqw4lQnNnS5Yw+Q9zxMj7aDPxlzX5r?= =?utf-8?q?C7qXMIWgbcpwPyc7uXamRCawIG79W85qto7r6KDRL3PMdbFvKoTVVVYCzh+ehKyWg?= =?utf-8?q?JatO2BJ+DX+Ny2ee4E8LpDD75d4SrvaSLaDTsKt9/Xp9e8QlCM8tCCrW/PIwNwT/l?= =?utf-8?q?uVUwWIgygcmtGa9nhLqQv3g4ACWIxNdM6sbtdMXWTFkF9x7DJ3YKEggDty56SX4OU?= =?utf-8?q?LeH7Bu1CQ4OLrjalvQ5Egl/Fz5yIOdmEbYag1D3q6POVbeQu4EJMgcxaoETGSvlMs?= =?utf-8?q?7N5SoIdKofMaUYySnjKfAb2q/ootlM6ow9j00yIxtY3SRN2mjNyZFfeQ/xIYhRGnc?= =?utf-8?q?rDGglDZWj5knDZ7Nc1xU3E5qyIM2oYwPOLJym9epKCuSWZ5fSPF/H4F9n+owI+HRa?= =?utf-8?q?umPxSRkpLQG72n7VfyGYs9YDpj+nnEgowS80sSBwvz/ULSI2oRVNhaw1P+vyKwhP0?= =?utf-8?q?4XndpkhTB1wu4CR4nvlBmE1lIY7019X699oh+Cmd5PK7XBsieMqEqZCW5YVKr0lAE?= =?utf-8?q?UYLaE2Z44hm0QGGSSWMQxA84LnAFuENPYPaKe4JNr6UJn79HVfQ9Ioku/t9fZwsog?= =?utf-8?q?4KzdRCeEMrjoPlRuFZosJ/FrJqIcgLIWoR101t+Warbt80qGAF0ORmaU76FojBerv?= =?utf-8?q?i6BUxRmTX9tV+7fffZPVk35u8Or8HBElFLwdtbojn/w1Hswipjnvsb4v5IEAvQJYE?= =?utf-8?q?2KLFbdUp7mBi?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f332f22f-9ec3-47e8-22bd-08db6e529d85 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 10:15:31.7480 (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: sImiH0CtwJU+EQnUi7TtxeonQKma2SrMngThjEODLyy7xH5jo6NyBOTNhCSvnKnvqFMYr7PJLdMoA8bOSja7Kw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9429 X-Spam-Status: No, score=-3027.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-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?1768853913064375209?= X-GMAIL-MSGID: =?utf-8?q?1768853913064375209?= Rather than corrupting disassmbly altogether, flag EVEX.z set as bad when masking isn't in effect in the first place at the time the destination operand is actually processed. --- a/gas/testsuite/gas/i386/avx512f-nondef.d +++ b/gas/testsuite/gas/i386/avx512f-nondef.d @@ -15,8 +15,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 62 f2 55 1f 3b f4 vpminud \{rn-bad\},%zmm4,%zmm5,%zmm6\{%k7\} [ ]*[a-f0-9]+: 62 f2 7e 48 31 72 7f vpmovdb %zmm6,0x7f0\(%edx\) [ ]*[a-f0-9]+: 62 f2 7e 58 31 72 7f vpmovdb %zmm6,0x7f0\(%edx\)\{bad\} -[ ]*[a-f0-9]+: 62 f1 7c 88 58 \(bad\) -[ ]*[a-f0-9]+: c3 ret +[ ]*[a-f0-9]+: 62 f1 7c 88 58 c3 (\{evex\} )?vaddps %xmm3,%xmm0,%xmm0\{bad\} [ ]*[a-f0-9]+: 62 f2 7d 4f 92 01 vgatherdps \(bad\),%zmm0\{%k7\} [ ]*[a-f0-9]+: 67 62 f2 7d 4f 92 01 addr16 vgatherdps \(bad\),%zmm0\{%k7\} [ ]*[a-f0-9]+: 62 f2 7d cf 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0\{%k7\}\{z\}/\(bad\) --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -9905,9 +9905,15 @@ print_insn (bfd_vma pc, disassemble_info oappend (&ins, "{"); oappend_register (&ins, reg_name); oappend (&ins, "}"); + + if (ins.vex.zeroing) + oappend (&ins, "{z}"); + } + else if (ins.vex.zeroing) + { + oappend (&ins, "{bad}"); + continue; } - if (ins.vex.zeroing) - oappend (&ins, "{z}"); /* S/G insns require a mask and don't allow zeroing-masking. */ @@ -9982,14 +9988,6 @@ print_insn (bfd_vma pc, disassemble_info { i386_dis_printf (info, dis_style_text, "(bad)"); ret = ins.end_codep - priv.the_buffer; - goto out; - } - - /* If EVEX.z is set, there must be an actual mask register in use. */ - if (ins.vex.zeroing && ins.vex.mask_register_specifier == 0) - { - i386_dis_printf (info, dis_style_text, "(bad)"); - ret = ins.end_codep - priv.the_buffer; goto out; } From patchwork Fri Jun 16 10:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 109010 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1223953vqr; Fri, 16 Jun 2023 03:16:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5UYIBJjhZ5WPCso5ujTQ62f2CUCVvD8VdhPGKLg8poDvGU/UD9GXG7AE0pMtIIP+yoaDDX X-Received: by 2002:a17:906:d552:b0:961:b0:3dfd with SMTP id cr18-20020a170906d55200b0096100b03dfdmr1687509ejc.7.1686910570266; Fri, 16 Jun 2023 03:16:10 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id s1-20020a1709067b8100b0096f8ec464a3si11377298ejo.323.2023.06.16.03.16.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 03:16:10 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=YgF5lXMi; 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 5CD8B3857710 for ; Fri, 16 Jun 2023 10:16:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5CD8B3857710 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686910568; bh=tG+9QfJ6K7j1x7osZ366T9xmizD1MEal7VhOCTGKzC4=; 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=YgF5lXMikBk+ssMv9VENV4VxIMk3PuNcfTXVwCGhbQt/Oa66tSsnXZye0Nen5u2zQ 5+DdxCEIu1koZOwSvPaDQIs/SYH7LM5CwxCnvrfQnquTzr54mjml94HSsyEJ7r9eMV LkoFJ/uzmzuAV3YDtVoRCOy5znSweXsp14qksj3c= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2055.outbound.protection.outlook.com [40.107.21.55]) by sourceware.org (Postfix) with ESMTPS id 95C503858002 for ; Fri, 16 Jun 2023 10:15:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 95C503858002 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zu5Qe+3+Cx/PfszEaKZi+2+0fLA/zhBnQ+yC0XVbo7XEBkGPaXvG5QnTbGeBW0NWmNF8zqMQMCzclPIoSKiQ+6bty+/si0G9L8tmlYU/N7LavEW7x7c9LVDFajguDEpjb9c218D5DwVGKNtW1UyAxPOOZdD1RcblcIg8bNOlacpXKCXbGMl+n7Vkwc6ZYZKAVkIyNQcW2ulh5EnKpt64XHcacNoOYCO8UVYE9K+ZdR9u5ucQhprWKmzX893vvoCpn4+Tpe/aL0LFxqGNQ3pkYPHvCUq8CN2EDcosPkJ3mhTaJnE6BU/cb/g88h16Y4zYhpJja1lITZLgto1gBNnS4w== 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=tG+9QfJ6K7j1x7osZ366T9xmizD1MEal7VhOCTGKzC4=; b=RvwuGCWgM1P2Ge82DrPtDfs3/mjve6uCkmrDF0VtCpLqhkc5mZJO9Glyz4vyAZq5RKgUZFi6DNIYLIlQCMJ91797v1kdGh/YpLr/BhHq3Dymqke1xJeA+SzEOQHlIqZY1N76VbhUYSnH/Gv5CyFzcUDCO4mZh6EIHOsYQdq0gpoM5RSHz3wFcIOc6glnvonFdiuCylD14OeJu4Mu+K2ofEryyPus+mD8Es7/OVXLihzfLUsaNk4GaGPPSbGN2kNbllDmqhAbChTxvbuBfAZpzmtqUbUhjCFO1QLjgf/4sCocRs/JdhSedEpLPwHCOpacXxONyrxcHyYoCN/Z4qdo0Q== 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 AS1PR04MB9429.eurprd04.prod.outlook.com (2603:10a6:20b:4db::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.29; Fri, 16 Jun 2023 10:15:57 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 10:15:57 +0000 Message-ID: Date: Fri, 16 Jun 2023 12:15:55 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 2/5] x86: flag EVEX.z set when destination is a mask register Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> In-Reply-To: <74bff744-e838-1e98-6cd2-dcaff901f8a6@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_|AS1PR04MB9429:EE_ X-MS-Office365-Filtering-Correlation-Id: 336fd89c-eb77-471f-672b-08db6e52acff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lFibOoMnM/yXjAoPh8fQG+VArwG5ayjW+RFOgO35oxM1m0Wb81HrbbZjjr3DxfhM0FZqahCaUW+0abE+zMdkT+Cx8yeAz1JgVb+4SU5QRGHUf3gkCO5thx8t0/r03LOsvEbscLXTlf6FEiQRz1CgNBjkcSPbjl+BmR3FVgRcxWrkvOucGcZjArL4QE9IcFDSOlHV12nHuHOa6hVy910UrRv8YSfBRCrrtAkiaQutF1NXfOHfL0Gm4Bu5BXRZJot6EkKNbw8EQEGaYqdmU5fJv9+dy567zAbKO8KEgL8mVJwVHVTlLll8SKKOpnYnOB4lXDtePN146yWFG50XcCoXruWPKvuImK7iPVboduvuuzrFA6VC2VFcWbRk3RVZ/uwa/4hQ2V1Tau1V3t96K+woLYb2ytPAF0d+wq++3jo3S0sDb7D6y/X5td3FjfFL20VlIQNvEyT/tHEyTRrd2Cg04F+xvzPY0DCdynIVWgntDJ/GA/3A6h75bqAbB45Qu7UiMHIMN5hD7hWmDKVt8m4zzuaIKuiea0pAZ+fc45m3f4yXr6dLZCbuSxQLIjtV/VrKfeRFQEblhxiUj9cqaLKDR0Pi4TiB/IaZBk4ZhC2MhkNFujSODWfQePLnRTns7OSL8UB/CVxmPYuCWgmP/TXNkA== 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:(13230028)(366004)(136003)(376002)(346002)(39860400002)(396003)(451199021)(478600001)(31696002)(86362001)(6486002)(316002)(41300700001)(38100700002)(66556008)(66946007)(4326008)(6916009)(66476007)(8676002)(8936002)(31686004)(2906002)(5660300002)(186003)(6512007)(26005)(6506007)(2616005)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?cwb8loHLOYWPExnEb07rzMOsUwU1?= =?utf-8?q?L++9MzHr9vKNXG9rmMSRraZrbNQud2WzdmAfGqVdLls4wIYLyBJhQypLbEfrml+yR?= =?utf-8?q?v0ETQ/9lX0i1SIh57DjvEbeug3Hk5gts56++EzS8n2W+0sul6AvO4ZKa6uEFVHv2W?= =?utf-8?q?yqGQo5s1j3c/EcOfKvqe6n6UckcpDciRANe1BT/+mpkoQZOhLtQGeGgvpO9P0krK5?= =?utf-8?q?AEX4AMDSC8yxBO4UnsVCafr+7Iay50R81BEOqhWT0zEVrToka6ja2/g8ieTeLTn1k?= =?utf-8?q?+nX5aa1Fr1yxxuZKh71gM9AXVRjjaV2wz5rYQWh2ghjlJttJ79UBvK3OgPKHgT+d9?= =?utf-8?q?ha/Lyca7kSQFMOpKmsM07HuQyYRW35mC664mmC6huyVwzyHw6xHOREVgDeKUmJkAL?= =?utf-8?q?Zy53ll1XNcK0EAXnUYYdzGN8yrXW62s7h0raFlpe3V78VYY4lkjb6HFRTnyVjkdXh?= =?utf-8?q?CJBC5mDI5nEo+0M1fqQn3yXTo2wNjH+d9N9RPtkr14EfW96nhMwYbrGO7I73nZGUP?= =?utf-8?q?vkB5qrvPewP2+gcXUeIkuRlodedtslxyJ1dVD4SI8tJB4AWEkis0/io5ehB0q1xh9?= =?utf-8?q?iadlDZf+gHI5G3ijnxVN7QXBbb7w+ACLSrq8R0AkmWjJMj2PUQQ72zo7rpkrDMu85?= =?utf-8?q?yPQkBifd/NFQ0wQKJcSrBp+0V99LBCpUoVUNKJSmyLDzSjFUSB4pz5OpmBa078Cyz?= =?utf-8?q?YAuCgCOaVO6AbRZLmWfbqqrYgXih/m+dyhEmyeHzipvoeYJDc1KTFtlpGAxiDa72G?= =?utf-8?q?us/6wm1F+Hgdu3j1vzf1ouArgsfJrMtkleDAbS5juYLXD1Po4owCE6f0w3Yma+Mlu?= =?utf-8?q?upH+bBoVtzacQZZFh5uEcjXm+zICYUSdGv5twvHU6ovyIYp6m7zHNBnSqVhV9A+ny?= =?utf-8?q?AoedyDBGlI7Pzw9Jt4OguSgd4UQP1wikDVmCn5ZA/M82vSLf8t5E7U2awbDG4hrTA?= =?utf-8?q?Cd6b3Sg4OnPNFwTi2teZU+nrsElhVF/kKZ8qsR3VymoQesA1ecDgLMRY/lYavwwwA?= =?utf-8?q?cjb614sAXNqyDomy9auK1tNM4ctPwQVPwe+mtx62rzjpPQn3eO/+F+562JWKVl7cO?= =?utf-8?q?7hDXrUgAw6ugdRa9RFOI2wemij+V/H/yEgMj2//zz3j63UdBgZxW72KxEPI9R5DP9?= =?utf-8?q?PsKvH6iHTMKZQG0MYwyBVQxElrWrk3zcd4Q5gdY5NgZX/JqG+3zL6TTrhBe4X/Cv5?= =?utf-8?q?x7k4QvYeEHuLOkAQK7bhMXSUvKX55YEF3Ggezs3n+7uIoYphCJ+NGKhn+RlfmCSf6?= =?utf-8?q?CdJI/TR1QsO4Y/qqmTbug8gcq19dc70X9mProOCa8wPvEaQ4FLWjsRwHCx/XFdo4F?= =?utf-8?q?KE1Wuz8OJjsjt3E3BBbifjlGK1EQH83RLrb8N4K5XzGrsNloXPNQagsCWsObWAheU?= =?utf-8?q?CB4U/WIe3e9isTAmjfClD4nDTJCi2i/fUT5tXvdnhsET/U6eMzjDL7cTWBl7OwLOO?= =?utf-8?q?XOXj0rVxaDWAKTbdmKLV525S12FBBz/+sFXprQJb04kWo4cdomwB5hxumt/JQINXG?= =?utf-8?q?E6Nnny0/xWdd?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 336fd89c-eb77-471f-672b-08db6e52acff X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 10:15:57.2932 (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: LDt1ZmJNwvk5DvHA9xpnQ6SgpV7qNotNOxKQ9Mc+OzL3O+Nr0xr2P33+B8MpORcv0pGhKxVBpMV4cgLIZMJWiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9429 X-Spam-Status: No, score=-3027.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-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?1768853938275869606?= X-GMAIL-MSGID: =?utf-8?q?1768853938275869606?= While only zeroing-masking is possible in this case, this still requires EVEX.z to be clear. Introduce a "global" flag right here, to be re-used by checks which need to live in specific operand handlers. --- a/gas/testsuite/gas/i386/avx512f-nondef.d +++ b/gas/testsuite/gas/i386/avx512f-nondef.d @@ -20,4 +20,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 67 62 f2 7d 4f 92 01 addr16 vgatherdps \(bad\),%zmm0\{%k7\} [ ]*[a-f0-9]+: 62 f2 7d cf 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0\{%k7\}\{z\}/\(bad\) [ ]*[a-f0-9]+: 62 f2 7d 48 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0/\(bad\) +[ ]*[a-f0-9]+: 62 f1 7c cf c2 c0 00 vcmpeqps %zmm0,%zmm0,%k0\{%k7\}\{z\}/\(bad\) #pass --- a/gas/testsuite/gas/i386/avx512f-nondef.s +++ b/gas/testsuite/gas/i386/avx512f-nondef.s @@ -26,3 +26,6 @@ .insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0{%k7}{z} # vgatherdps (%eax,%zmm1), %zmm0 # without actual mask register .insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0 + + # vcmpeqps %zmm0, %zmm0, %k0{%k7} with EVEX.z set + .insn EVEX.0f 0xc2, $0, %zmm0, %zmm0, %k0{%k7}{z} --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -219,6 +219,9 @@ struct instr_info bool two_source_ops; + /* Record whether EVEX masking is used incorrectly. */ + bool illegal_masking; + unsigned char op_ad; signed char op_index[MAX_OPERANDS]; bool op_riprel[MAX_OPERANDS]; @@ -9915,12 +9918,21 @@ print_insn (bfd_vma pc, disassemble_info continue; } + /* Instructions with a mask register destination allow for + zeroing-masking only (if any masking at all), which is + _not_ expressed by EVEX.z. */ + if (ins.vex.zeroing && dp->op[0].bytemode == mask_mode) + ins.illegal_masking = true; + /* S/G insns require a mask and don't allow zeroing-masking. */ if ((dp->op[0].bytemode == vex_vsib_d_w_dq_mode || dp->op[0].bytemode == vex_vsib_q_w_dq_mode) && (ins.vex.mask_register_specifier == 0 || ins.vex.zeroing)) + ins.illegal_masking = true; + + if (ins.illegal_masking) oappend (&ins, "/(bad)"); } } From patchwork Fri Jun 16 10:16:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 109011 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1224309vqr; Fri, 16 Jun 2023 03:16:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4gnqrtkkbibxyi6W8xFSB65xAMIPKEbCeNZhLff3R07a+zLISJeRsm58LXhNnSpz8fZrSD X-Received: by 2002:aa7:d7c9:0:b0:514:91e5:d622 with SMTP id e9-20020aa7d7c9000000b0051491e5d622mr992034eds.36.1686910605617; Fri, 16 Jun 2023 03:16:45 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id s21-20020a056402165500b0051a070500e6si2651123edx.290.2023.06.16.03.16.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 03:16:45 -0700 (PDT) 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=SopElPTT; 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 252883855587 for ; Fri, 16 Jun 2023 10:16:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 252883855587 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686910592; bh=xdsoZX5plqwzoWQpKRi5G8xHx6yJV1g/KLmTCKTTQvc=; 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=SopElPTTn86DbEdcKmYGrAan1oO/3PQqiMR44KXkpO1kp91CopEa3ckRRZ7MvIPT3 E2duSfk2mXDuN2arhPASi2oqpvfUHbsMfr0fwx5nsPn7hijyGv7I3fIs0/oK1S7mRz OhGS623vvI1gj7gjR98pt37WsbIAPpoYresfWGqE= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2088.outbound.protection.outlook.com [40.107.21.88]) by sourceware.org (Postfix) with ESMTPS id 4484738555AF for ; Fri, 16 Jun 2023 10:16:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4484738555AF ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hPR+CeWNXNg41YMerWT+K3FlUo8Tf4qhTy0swfJ9TpgJFNiVL9A0l+r71iEbJqgwf1QRtjxrARIk6YIBQ6B3oubwUjRwE2Pi4Qs/PQPyhR5xqCdlw33iUDCewWXmcrW2/s9nYGKIFi3sSDHSsjNOv6M25XwjdIxH3hJuEAg6Eh/1GsQpaboiAW6A24Uwqi9boY5hm7h1n59o9VZlJGLOvaXvqZPTCWIDxVDw44KJ9A+PhYU6FkcY1nlMJpnja9MdX/2uxN3RyIapEOkngxQ2ZaIdNbD5GKUeRiEwd8Sl8N2PjzRhJpi4W3PHf+z1oGLNi8s1sCF441Gswk2KV03sNg== 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=xdsoZX5plqwzoWQpKRi5G8xHx6yJV1g/KLmTCKTTQvc=; b=YK/tntzMqmf64y1UJv39SyIQA/L32F93nPxOcfoCzDDn5cXxwvpMkWgB0xjhcKoUjsLV3uLHzc307S3G5T2iXQwLhwqEV5mMj8v63GOKd7ILNy/UtG+jsc9x/fApHhxLMf2ANIXBBgcHZwKtGOuQ0eraPDwzDfJsc4iVTi7b3Qe42xZFJILU8YEa0g/UWt9md17U8h+qJ0J3NisAdsLZpRYjeTU79flRqP4dY30H/9SpDA6RQ6WQIzBHqSxkejenThaW6lMlssdkR7KvMMC5m3Ix40u9i3tQzyUQlAGPc9MSJb5A9nYAXjW2+Q5zwY3NqxJoy+EH3XNirf293e53Zw== 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 AS1PR04MB9429.eurprd04.prod.outlook.com (2603:10a6:20b:4db::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.29; Fri, 16 Jun 2023 10:16:22 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 10:16:22 +0000 Message-ID: <65872bf7-36c2-0a0a-8992-38a0843a897d@suse.com> Date: Fri, 16 Jun 2023 12:16:20 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 3/5] x86: flag EVEX.z set when destination is memory Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> In-Reply-To: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> X-ClientProxiedBy: FR3P281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::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_|AS1PR04MB9429:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c13fdd2-c388-43f7-27fd-08db6e52bc13 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z1FrxPkZI9vPJDu7VgKM62UTIndxDDbzdG+JC4nClORxOz1siA9FrdgQ57Gmn3DG+ky0h8MZ7ibnHVUob8+GJdVaGEHWjuyTP0byQATWC/cvnrTsxEu3guh0Lb9MVdp8rgC1UdXyV2RQ9jvpT9rMIelUNnF+PlTM1/YJaLR5WY7ZW4AUznVJVHpEddtxhfWGAZD+5ro1QVvO8wIc3b3hZf48uyscn176lOAg3V8AS9lBOgwE5So+R88ODGi9BnIGi6xiZ+1sA9YLv6A7flwjWkR5gC6QH9zEVGqEK72iGDn19pI1GMYU79/Yo86I2py8ZlzbUkodemolnqHTuy/c/32vsE1iYonPHRMSZG24fXh71TxSvPtZ0RvjDvokKncL4wG67YQA4czkZxpKHiAl5cvyS6QKoNamDthDsPJWivaR7jesJB6WLX5uPwGwAtiEvSykRtc7m7kAVCHhSTt9G/d+6Ye/xDc+kRmHtSFGJ5+2pN2A5WmU80N0jNwFe/7LyCUd7vDmdDZOTzPDgQYDlRS4pGYF6dSNB4i28xADpIl7z1GjoJZ3Ed7oTytrJEp+cf82mMo/XsJX3g00eKOrSZlRSxSw8y7maOhJYHryt4WuPLRvwG8VWl6SNV7SCbtU0CqcEDW4nyvdtWeY1eaT4g== 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:(13230028)(366004)(136003)(376002)(346002)(39860400002)(396003)(451199021)(478600001)(31696002)(86362001)(6486002)(316002)(41300700001)(38100700002)(66556008)(66946007)(4326008)(6916009)(66476007)(8676002)(8936002)(31686004)(2906002)(5660300002)(186003)(6512007)(66899021)(26005)(6506007)(2616005)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?NlJ7GQYH6wXDhqjGnmpv91zSNgPt?= =?utf-8?q?1AcQCNboHh4YtdrXpdRzA3r/IXAXo4l8BzvZz88snc+jj+5IhKlEXseXnt9xu0QJQ?= =?utf-8?q?0p/ZZDDDqxlm8xp2AoTIDWS9ezKFGRb+eOL8rNSpY4NkAySkMQQErU2t98GgTamqc?= =?utf-8?q?J1wS0ZPVhzs1IY3pMJUr3UJStutPjSoro83hC7T/fF8mPeuBzgHfXlNLKAWXPL689?= =?utf-8?q?wVX8XM4jbENtNtCq/BgOgJnbRtYdFbgn5z4t3Oxidl+A+Yfyo1SnDEk7vCXBY48H4?= =?utf-8?q?QT7WBbDvtGFiDg4ebGME1SbhmRVyjQaWvfhdFJwS2ELvMXNC5T5KZYdFn7YvGX7oM?= =?utf-8?q?Sn4HoOSgKkpLRvA4SYpaRby8BOiBUnDgFUhQ9L73gkGux3s1UghuE0pSUtS0KESQH?= =?utf-8?q?dgLhNC38LoNlezvbxmkZMjVmXDifPyPq61lsIs5FNBw/6y0kCE/qOnRXKDRkbT16K?= =?utf-8?q?JupqFZobrMAEg2TUC6GAh1uh/82EFOqwZiUZte7vlstnK4m3Gdor+MJJeSMSsgAVE?= =?utf-8?q?zdAe768lAI8MlmPo6srSrOO+8Fg24ZqAqzGRWa3XxZkAZDCBWr1VbG2cVKyjcOdQS?= =?utf-8?q?nuBDT2Sf9Q/D68pwAZvQyTB0Ml05QnKGQWDHQHsguzLDiM7JtKEt1ZeNJCe773vT3?= =?utf-8?q?T/m6DHepS1SK+ltOBwfjhrtHnptNHKFI6VfVBkMcLx4yYSMnZKJ+DEiAL7S2HsWDc?= =?utf-8?q?D5YP47EnGl8qzlL/lkE/1Olmsl9pNZpc2UYpkJLRH/vE08dQiaZT3Ge51+PyIp/ba?= =?utf-8?q?Qrm2zLGvn9fDaL3+Z16KwSqt40wIpY66nRqohHA1dzaajueIJVCc0qfRsq7JHV8Ru?= =?utf-8?q?vRBBD3E83bPsOZBAa+XqfFzNsABlIk9NhU0sFOBqK9lPVkKIclTgZxostwjB9Yuuo?= =?utf-8?q?2k9CjLLFOr7nNHO2i2LpoPb1u0rWPIu0YqSfdIa7/i2BjhKe2QPihn0ncNgEqmSJn?= =?utf-8?q?DRqklj6sGRoFGvCStDvLi/H/5h50BrhdOFUvOfBsvbqRGc8GbGHbtKcBnrnfzLGDK?= =?utf-8?q?p0J34LdJMO32QQKgYUCmGE0qPB97AolUtmqQJgtw+s4CpjgRBnAkhOit+2HIbCsFw?= =?utf-8?q?ZBh6y/3nQP1ySFxqqclH3Pp0N/IJREuVWzTAFw+hVy+C7ytZsFXhAV7cbQbt4zIBY?= =?utf-8?q?r2STBD09pM3VKBYdDZiNmH5/pzhG7HxVIixjY9Rzk7e5xHrfwXwR0W1043GRP3YBQ?= =?utf-8?q?q2dahXaLzIAfRezST3BiEOsINMWmzdprkk2jWLvOzHtFvBj2br2s4WPz5KLuIfpL/?= =?utf-8?q?I5MixiBM9eHMIkk/L3+q4YjYsa3my4OlzGiGbeP7aKF1J/chKoFXsc5zUyQk/YZHS?= =?utf-8?q?JXkgCWX79+VtuJUeczaaahGuZzp9sYB+HIxgfCXjDIAsVzAWFMo782+23o4ORux0w?= =?utf-8?q?Mq61QrMZl5Xpl36tVZ9bi8wXSNz860rlCXrmRi6fHorsQnwPuJvZZ3zdrM6LwgKcw?= =?utf-8?q?29lImiSEae89+caFi5jS+S/s985ZCKD5Bx3cdBdXf+ei7TQ8Jd2OdMf1GBhyRU60e?= =?utf-8?q?QRWJyP7GtEPs?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c13fdd2-c388-43f7-27fd-08db6e52bc13 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 10:16:22.6227 (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: Y+b4cNX2HLJui+b/tLJfgys3KuR4nucP8XfqSqrJLIhOSUPZasAo4jBLYaWJ4xO0xpeTgKh3Jn4U4dRgTbgejQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9429 X-Spam-Status: No, score=-3027.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-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?1768853975029419451?= X-GMAIL-MSGID: =?utf-8?q?1768853975029419451?= Zeroing-masking is not permitted in this case. See the code comment for how this is being dealt with. --- a/gas/testsuite/gas/i386/avx512f-nondef.d +++ b/gas/testsuite/gas/i386/avx512f-nondef.d @@ -21,4 +21,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 62 f2 7d cf 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0\{%k7\}\{z\}/\(bad\) [ ]*[a-f0-9]+: 62 f2 7d 48 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0/\(bad\) [ ]*[a-f0-9]+: 62 f1 7c cf c2 c0 00 vcmpeqps %zmm0,%zmm0,%k0\{%k7\}\{z\}/\(bad\) +[ ]*[a-f0-9]+: 62 f1 7c cf 29 00 vmovaps %zmm0,\(%eax\)\{%k7\}\{z\}/\(bad\) #pass --- a/gas/testsuite/gas/i386/avx512f-nondef.s +++ b/gas/testsuite/gas/i386/avx512f-nondef.s @@ -29,3 +29,6 @@ # vcmpeqps %zmm0, %zmm0, %k0{%k7} with EVEX.z set .insn EVEX.0f 0xc2, $0, %zmm0, %zmm0, %k0{%k7}{z} + + # vmovaps %zmm0, (%eax){%k7} with EVEX.z set + .insn EVEX.0f 0x29, %zmm0, (%eax){%k7}{z} --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -11854,6 +11854,13 @@ OP_E_memory (instr_info *ins, int bytemo if (ins->vex.evex) { + + /* Zeroing-masking is invalid for memory destinations. Set the flag + uniformly, as the consumer will inspect it only for the destination + operand. */ + if (ins->vex.zeroing) + ins->illegal_masking = true; + switch (bytemode) { case dw_mode: From patchwork Fri Jun 16 10:16:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 109013 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1224749vqr; Fri, 16 Jun 2023 03:17:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4xoRs5cG2lQwwkFpMpc9Ay5Gdi02pYk/TOKA/dV/EnQkPfdZ+8dFSU7xOeAxA7D2sC1CH1 X-Received: by 2002:a17:907:cca0:b0:978:82fd:758b with SMTP id up32-20020a170907cca000b0097882fd758bmr963119ejc.29.1686910645695; Fri, 16 Jun 2023 03:17:25 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id lr20-20020a170906fb9400b0098287baecc2si2888492ejb.50.2023.06.16.03.17.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 03:17:25 -0700 (PDT) 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="naq/AEaY"; 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 25962385662D for ; Fri, 16 Jun 2023 10:16:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 25962385662D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686910617; bh=B1Y7UXQm+HDlczfSkEpWTl59UMhsrppjIgNuxmiymTo=; 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=naq/AEaYmZi9JO14jEjGdPv9oHfM/gptqRDK6CWtvPyXZBAfGjwZ1szgss/SoNHCw ka5kBQy7giUZ9pSZkS2WXjfvwT4ophU4OEhMf9UTkLPqKMFvpRnzxtlJsUE8nxYIwS CZxV3IYtemVG0MewhfEOIjPrtXwt5nAu1K6ZCIcc= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2061.outbound.protection.outlook.com [40.107.105.61]) by sourceware.org (Postfix) with ESMTPS id 4771C386F821 for ; Fri, 16 Jun 2023 10:16:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4771C386F821 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IiTG/N1myvennitp3dx7ZNr9EB190/pjeKs6vGLn0cZ2Nh9wjSIhKcOJOZexDRn//hzBreefY6G/H4vxZEwtPikOBn2TwJ8GXUKkyb+fOr/npp9hTXAZegFeKKQ2RJRt0tgplHbKeifzZ5Cd6RyjQzD3f1iOpuW8VniDVuyUCX3qyJng3aEicBSXN3Zm1T90/JWHl0V6ZNwjmaMW7IYKR/8d4B6ft4Sro6xJTUaMAH+Kmc3Nbe7LdZDrmrIHh5Y0oQqt8Q06V42/2+R+84teGjQSVY20uAeslXLcU+2sI7lkSwpo+gSf5buyOgoR6Iapsv12HziIeXgoHOZXS1ERhg== 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=B1Y7UXQm+HDlczfSkEpWTl59UMhsrppjIgNuxmiymTo=; b=Jc0Z1niOcwwjQc2Z10E1l153VD8gbQM1IR3f+pekgoJgT9nzbWy1sRRhjeC8u2+sChr+zpZ2owNmVBERskN1jifnWdpPDkALRDumlcyjMmnq02jbzXW7Cbq5h5bI1m5d0+AnYqQ3xVmnT6LlAACtoAAcbqORC033xw+AqbRsFaTVWWbPrMGUzT0lpdD+M3+XLJZDeJjfaDHRbZhWsx60HhSyw9BY1WfhR5dI5/JgosVwHCvRqN6PSyPuk9rJlB/9S6myonJfiDkL72Un2FvIQ9sSchnZuUxqSb5zpISzRR0nvsnRauJUv4l7DcHqMNN6GTsoB2fa5Sgv9g+RsH/vaA== 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 VI1PR04MB6944.eurprd04.prod.outlook.com (2603:10a6:803:133::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37; Fri, 16 Jun 2023 10:16:45 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 10:16:45 +0000 Message-ID: <2574a7d2-68aa-70e3-c5da-fc726c952c22@suse.com> Date: Fri, 16 Jun 2023 12:16:44 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 4/5] x86: flag EVEX masking when destination is GPR(-like) Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> In-Reply-To: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> X-ClientProxiedBy: FR2P281CA0040.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::7) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB6944:EE_ X-MS-Office365-Filtering-Correlation-Id: 02c2be26-7834-4cce-fc2e-08db6e52c9f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lxp5SG2TXQ5FIIbeh7Vv3QkZeAWnfNM4OPMhdYSVyA2lhhVmyCEa1qVeRTqqLabuE7eKHfKm1d68kTu9b07KfwGWGmXRrywjnrLGjChMSecv9xCy/RlNJJU5cZOO4g6HidlAbl9nY5BCAwl0HkRLscjtZP95FZvvZtRdwGh/zjsbnGo+j7otXXFJ0fJxyem9e37BOPDrfWS4bOaxgmzkCIQ5dxMtg9lHk66LC5DFM6WY3gNOQOjTS8bJu0FOcvMiC1zDFWMQvIF1T6VbYI4vuDXG0onv6Mdz0c1G9XoznFW0PInBAtzDsCSbKhWV/l1q+RpmH8rBDINYqMYvgx7Awxf7dQxZ2AkS2sHNH+fSJy4Q56Ig5CwhcybbiGUrjRaRVbtjoJZ9bM45uj8k/A+pbA74IS1xqOJ0JdHx5fRB6v+S8cTqJ9Qdpddh/WsYxSKPSCBxC2TBcUGXIuKosfTgLuG4gzcFmdM7vZeMLqMOUntRxZV7plGs4QsDKe7vv5tjYYJA0Jd5Eo5s+Cw6nj3aEOEJMK2WrSnb/+XNPbZvIx827d1jOjYvDjvIe8GndDxQDJv1iYSPqJzRBqraFTgK/LlLUVTaiyfOPvqYaA8mVr0go7gGzYxWFTnpEyXADgzA6wy4GRc2sBd6pHkS+t/0ZQ== 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:(13230028)(376002)(366004)(396003)(136003)(346002)(39860400002)(451199021)(186003)(26005)(6506007)(478600001)(6512007)(31696002)(86362001)(6486002)(6916009)(31686004)(4326008)(66556008)(66476007)(66946007)(316002)(2906002)(8676002)(8936002)(5660300002)(38100700002)(2616005)(66899021)(41300700001)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?QgHGcdW7StXY0tCgbMVHBcyxp8a5?= =?utf-8?q?GP2N8+bF9a0MGcTJd3G9f2eOmztInN4ZezZNDmejBWMVWumee9wQIEFxxWPwRssDS?= =?utf-8?q?cecdx4BsBRDRyZb6RUcIWF2QLh7mN7C4WKUD1nE5Jt55XR8+e2L1jljDY6D2eo/Uc?= =?utf-8?q?cxOFngsLx04MmswDU1eK5BIjxX9Cq5T1b2bNV9+EAXWMEsbBd5T3SQ97zR3tCsp+u?= =?utf-8?q?eiByGR4tOettsxHky6g4eKfJBSnCA+5M5kOXrQ1rzPDYTauh3Z0aBfacb/M8siDPy?= =?utf-8?q?TR7BpCpYknv/2GVCV2inT6sZE1dUByrUiRtbtnHGtGySQpXKP71wxY8BLJy4QReB/?= =?utf-8?q?jZDZLUMf5qMu1F+MeU+IUtELov5Xezo1FWkten3GXMn44s4POLgrsaan5yd25Is1t?= =?utf-8?q?X+V9csReZBCTMuZeWSRbvy+VFXf7UY7y3Ebt5DP16C5XOi00M9mkAGWVFXeb6fhQJ?= =?utf-8?q?UL4xcM855NadGLnYOiRGvo6jdy+Cll5esII4sE0Pg6Iz6U+x1dpUp0ULV0IPwANTm?= =?utf-8?q?5h0zhpDkK0+aIlmlujKm387917NKEiO1SOvc026siLjVVRd4vZMbZ1ZJudYMn/XAn?= =?utf-8?q?AMPDCRhR2a6OlxIq/ItoOK8TySflkjAiozyhlcL5ULLqJSZt9kyq0KpGoQWbYGM+e?= =?utf-8?q?ijglCcfS1LrPxJLzEw5ePye2/R8jBimN3aOv0kXx/DcyUeCD5rgFYMA1q9f0+kdvW?= =?utf-8?q?Y4Pe78FEXRGpbm7EWMPoUBmaLd2aIokvto/VBme84aBok8msd66N3gBi/yBi1x2Dj?= =?utf-8?q?v+/1712ljPJ6P4W/0IvyXHblNM40o18t2OU9OumKTNUCMQ3MIlnFxK70Yrp6JWUmV?= =?utf-8?q?0lD/Xy8QNCNTHFh5dgN1XMv/KhrFINLaUwIIYinXe7FTTqwUk4D/Ef2ceAqQ3mJdG?= =?utf-8?q?pS6cSHx5ltL7sFX9Khj+QstMCgHkkR/8gkJinhlGzTohJiu3sHJW+QuoRvn8x8Nz9?= =?utf-8?q?8Nyw18kTYKSGiaZtF384oaVzTbrWIvNdtuG7CdLVNikcMcAEaftFXGfMXBdbyK3gc?= =?utf-8?q?Yzx7KJzHxVyE/n/PuPuYAkg12yO3150fU8mv11s8SHL8k1C7NCTAiOVv4BEWYC1vu?= =?utf-8?q?LHJCV9cPkqo1PZJmiv5bbLMlu4pClwIC4POAApTWWt/aHXxmFzXnpSUh6GBfGv7ld?= =?utf-8?q?tA79V64Lpkl5wVKTXngO2nIs6b+Dn1Ylmu2DFoXjBJcgPRCfp5+PARsNMWCfYZHsF?= =?utf-8?q?0vwn+Ad2fHzlFjB8HbewSYtOwfd/zDQjZFINqVWlDMYBGFXRg71WAiDFOjZEoNZ0w?= =?utf-8?q?ydwQcDRsbutYsgBnLll0tYrYIec3SicvXWczvav1/6FSj8tNSJOD/k85P3BKK2ODB?= =?utf-8?q?Ux69XsO/fNSbeMEKN636TH9QHp1pt9zKfUdDykYOb+KvyZVLENm8TTpMPo0RyZtob?= =?utf-8?q?QywAPixGuTZjlqXEp69k8PKuJFWQjoQHaWTLI72t86jYmEF6bnzqCsVAO2+0/gLAq?= =?utf-8?q?RxZXRNAFqvDrVbabBSxT4HKEsLNblfrmg80pQBjzcrmQauF0u9qUZWWcEkSMdn86a?= =?utf-8?q?PhK248zGI7/j?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02c2be26-7834-4cce-fc2e-08db6e52c9f0 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 10:16:45.8687 (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: ou/CVsVUXAtJcSpNTtI7oEKzdEPBDNDfedjVjusvTqQP85IRpjMolxRZNExCvnxQBXzkIU7UhOYD8z7OK+zFQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6944 X-Spam-Status: No, score=-3027.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-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?1768854017202954535?= X-GMAIL-MSGID: =?utf-8?q?1768854017202954535?= Masking is not permitted in this case. See the code comment for how this is being dealt with. To avoid excess special casing of modes, have OP_M() call OP_E_memory() directly. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -11640,6 +11640,11 @@ print_register (instr_info *ins, unsigne { const char (*names)[8]; + /* Masking is invalid for insns with GPR destination. Set the flag uniformly, + as the consumer will inspect it only for the destination operand. */ + if (bytemode != mask_mode && ins->vex.mask_register_specifier) + ins->illegal_masking = true; + USED_REX (rexmask); if (ins->rex & rexmask) reg += 8; @@ -12374,6 +12379,12 @@ OP_E (instr_info *ins, int bytemode, int return true; } + /* Masking is invalid for insns with GPR-like memory destination. Set the + flag uniformly, as the consumer will inspect it only for the destination + operand. */ + if (ins->vex.mask_register_specifier) + ins->illegal_masking = true; + return OP_E_memory (ins, bytemode, sizeflag); } @@ -13156,10 +13167,14 @@ OP_XS (instr_info *ins, int bytemode, in static bool OP_M (instr_info *ins, int bytemode, int sizeflag) { + /* Skip mod/rm byte. */ + MODRM_CHECK; + ins->codep++; + if (ins->modrm.mod == 3) /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst modrm */ return BadOp (ins); - return OP_E (ins, bytemode, sizeflag); + return OP_E_memory (ins, bytemode, sizeflag); } static bool --- a/gas/testsuite/gas/i386/avx512f-nondef.d +++ b/gas/testsuite/gas/i386/avx512f-nondef.d @@ -22,4 +22,6 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 62 f2 7d 48 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0/\(bad\) [ ]*[a-f0-9]+: 62 f1 7c cf c2 c0 00 vcmpeqps %zmm0,%zmm0,%k0\{%k7\}\{z\}/\(bad\) [ ]*[a-f0-9]+: 62 f1 7c cf 29 00 vmovaps %zmm0,\(%eax\)\{%k7\}\{z\}/\(bad\) +[ ]*[a-f0-9]+: 62 f1 7d 0a c5 c8 00 vpextrw \$(0x)?0,%xmm0,%ecx\{%k2\}/\(bad\) +[ ]*[a-f0-9]+: 62 f3 7d 0a 16 01 00 vpextrd \$(0x)?0,%xmm0,\(%ecx\)\{%k2\}/\(bad\) #pass --- a/gas/testsuite/gas/i386/avx512f-nondef.s +++ b/gas/testsuite/gas/i386/avx512f-nondef.s @@ -32,3 +32,9 @@ # vmovaps %zmm0, (%eax){%k7} with EVEX.z set .insn EVEX.0f 0x29, %zmm0, (%eax){%k7}{z} + + # vpextrw $0, %xmm0, %ecx with non-zero EVEX.aaa + .insn EVEX.66.0f 0xc5, $0, %xmm0, %ecx{%k2} + + # vpextrd $0, %xmm0, (%ecx) with non-zero EVEX.aaa + .insn EVEX.66.0f3a 0x16, $0, %xmm0, (%ecx){%k2} From patchwork Fri Jun 16 10:17:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 109017 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1225459vqr; Fri, 16 Jun 2023 03:18:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5/c8fxJUchIuy3LnpfWXeKMiEH2C/U+mjbKjDMtlrv2uNMaSI91kflJ3DaMw6XBxBUSsGC X-Received: by 2002:a2e:740d:0:b0:2b3:4909:192b with SMTP id p13-20020a2e740d000000b002b34909192bmr1344091ljc.44.1686910705833; Fri, 16 Jun 2023 03:18:25 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id n14-20020a056402060e00b00518344c0b28si7199951edv.283.2023.06.16.03.18.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 03:18:25 -0700 (PDT) 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=PaPAYIUg; 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 5FAA23850214 for ; Fri, 16 Jun 2023 10:17:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5FAA23850214 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686910659; bh=nc4GcLPV/W2PWCmDQ6JxIsAtL04fed5HKS0tKrhRVXE=; 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=PaPAYIUg24FvVHLtFR9t8aMoujgrbbbYxeSfxjYVkE6CyaUU84N66uRSTRnGS4XtT g3Kr1dVRmlJ3mP1LtEF/PE1Qi4nr5O6QnjBusZPzhC+dmZQObXmcQUbNrwJl416C+j zJ49PI60d9pjCaXkX4cqXa/PIehVuuaEwhs3J9bY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2072.outbound.protection.outlook.com [40.107.247.72]) by sourceware.org (Postfix) with ESMTPS id 4509D3853D1D for ; Fri, 16 Jun 2023 10:17:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4509D3853D1D ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nv1oTTY3Vo3jakG8IA2yFRNsBTsvlwpDCucp1eMYwHce9H71L8GAcNUJwiAeX3iodDiv341TmN3HaxJzrmmwWbll2fDFxQM0Vde7GLSAJahA+1GoB8wKm2hO9vBsOLinWlxYhyPxUMIhJvD7Yczj/O5ZR0/6syGj5vBUTL+hQbqatZ+c0GjnE5CnooYT1Uz7mMXcO968eqPsCa2kLjxeEdjjTFrTKACaBFC339m5YnHaPsfpFQCQQCR+bVexNZyzLW/UO31kZAVDAmKbpYs4IlCJrDMnO/N/5gdtDaa/0WV31sZdO7Ij0estdkBwu3SkDf/bIZ8XBFrhnoCuPhoNlQ== 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=nc4GcLPV/W2PWCmDQ6JxIsAtL04fed5HKS0tKrhRVXE=; b=CH3mK3tCBv22IHhmEzJDqC57/wkh2H00mF8rQLjStg9QPZ0ONZDoX7HaV6iC1Q8wy3wUvVKpjMjz+QaC58wZLpm/n6ZTRI/xjAovfJYSr7RO9GzyzaaT4V9ixWutpjvA17Wk0E0w781L5xITj19kro04HZZAWPck5Xe//4gA+Wc0ypcuCyrrSb9zM8Xt8vdPDmNb2k8OwKBfLyliIIFHSIS5wXOokT+FAXWHEyfVmkaNRb0xobsV4iMdDzlI2482VB/1f/Ey0+pExNRuVSD6SQ4JULv8QLrpkm7QTvDSM9037EKBI3b2/VWboWpTfdWKbj0myx+ROszvD/hiIP1Zcg== 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 VI1PR04MB6944.eurprd04.prod.outlook.com (2603:10a6:803:133::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37; Fri, 16 Jun 2023 10:17:28 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 10:17:28 +0000 Message-ID: <33c2fa9f-1f8e-bed0-8653-39eb876fb0b3@suse.com> Date: Fri, 16 Jun 2023 12:17:26 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 5/5] x86: flag bad EVEX masking for miscellaneous insns Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> In-Reply-To: <74bff744-e838-1e98-6cd2-dcaff901f8a6@suse.com> X-ClientProxiedBy: FR2P281CA0183.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9f::19) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB6944:EE_ X-MS-Office365-Filtering-Correlation-Id: 76668523-d562-471b-b69b-08db6e52e32d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LUBHnVutZbmd//6kKkfNOXzv6/Pb3s5JnItvwEm1ImewG4On5NQKrwf3jx7OOkkhHXCk+cLehaLzrr/oGPPmd2hONrR2BUbNrEEsPk2uGwV+6xsmP/uIT4/eVTaMvYT0/JxY6b9lvDlOmR6apsFp2bx4OECYmAKx8MB57z+dBGvCvg1Z+6Gll2Q8ZX0BJgJskTV8JrluzVgq7I0Df8LX9EyK4k+OPKA6eYBmSTAd1pF0CPBBuC+fI7AWIMNgvlTcvI0SZFlS2lK7veyqVJxGE5xbjklrK5UQrCEXmKi+W82Sr/Mqrmn4rfVzSnjFQ6c3mE75DjjDwKOtaWVbMlzw3twAFN+T4JlQiFDhXknES216VepRWUqKGHxbygC+zLbpyk5Ze6du2wBR4p4AcIFrF3TZupLSe4QasU0664SDT3RL+PONb8H/0+5/UfYNiz+NmyfCfII0JPtl1kqN0LQr3KeRXr1jQFKza6UP/dRvH585ChpvP/HaBR3lhqFTX32oW7/P+u5h04yapJVFYKExGtXZVH0J7Kn2HWN520zqpuUCUcoSTFFzoJ2lSLZv/5x7+JVq9DmaRLlkubvID113vz0Z7yQr4Qe3cosMeHKGHjeWyYS8hvUbQSCciLvFDtSylTD6iEHWmggn73hgB7XaRA== 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:(13230028)(376002)(366004)(396003)(136003)(346002)(39860400002)(451199021)(186003)(26005)(6506007)(478600001)(6512007)(31696002)(86362001)(6486002)(6916009)(31686004)(4326008)(66556008)(66476007)(66946007)(316002)(30864003)(2906002)(8676002)(8936002)(5660300002)(38100700002)(2616005)(41300700001)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?QdL3Abr+Zwmy5dzmZLzw0G0B1+px?= =?utf-8?q?85AeKvMkq5tiL2hJ5BFQ7fRYmAoQFn/m5xpNk7SUv/KXH/HsvzmS/OUfGvQwMzhuT?= =?utf-8?q?kvleEe2x3crgjVnKlwpX4ESJFV6ucGp8iWEUvzLG+nMa9A7kp0du6Zzds4rs0JVsc?= =?utf-8?q?LZu2K+ZjRBnGvzAeNC6LMwhBG379Asor8rcIST6jt+KnK0vLuskkwmXFj2/d4szy6?= =?utf-8?q?wQOg4QeD2yoZ8jQP/DabVfs/8P5i/zDTZ1vjBcS/g6DagtQ3bJwto2uvpSJRtwu2e?= =?utf-8?q?7xCxFCifB1Lm4YetUBn6jMluerU3EquIHGMeHWz5p7xposzC/ZbL+BBssEWmtmntI?= =?utf-8?q?n+KV/Ki20oeBZSBOGXX9LcmuthGMzlbfTulYqohW2yXTxfp7KDJFdD6iqwUYSQzba?= =?utf-8?q?EgKX8/FW6WPOxrDk3a0IbjWjOr11RrSCcnYSpudwwXFytgrnEs5qZV7Y4sqoIKnmW?= =?utf-8?q?q6jRVCzVT+Qdwiq6ZjuztFONB8p2wrlKE9ny9O5mS4tTO6uW7nkbyvPZfDqzVWH28?= =?utf-8?q?9LTLYKYeCv7jc90lHyxNesM+UwvbYvMp6VEq/nhWxBC3TjM35upUb+qS9zH7kpFhM?= =?utf-8?q?omqB7mxM8rRyROdfHAQIPdYL/rOeUAtLGX73FH/0047k8/TAFJ/tUOQjI4PKGyuQ3?= =?utf-8?q?KL82PyezHZq2yhAwEkKE/hD34rGhkvxp20ASd0e5BHY6zIiulh6MrIP61mRDmy157?= =?utf-8?q?7VkxRiRVMEOjjwmQTwBMvRhbV6Wd0ZR/leC1iW4/AcqJwS9h9OKszffu8hbyP1ev9?= =?utf-8?q?CFH1PKMeoq7zZfsfTZNNqr82XR4w/Y42WB3Pkl1Tsf6kZHmyB2f/1tevG8/zjBhJO?= =?utf-8?q?RJI0AiZxGaLz1/IOmhJ4hei7LkIxhqYXim0DQtszldxyWg7nN9AZFeOG17kVEzSl3?= =?utf-8?q?YTSYmRWEWa7gAkhZRS/WVKHo39GK+PcCEE5MXNjw6pibL/CrJ2HDlsJ9UZgG6EWAv?= =?utf-8?q?shingX2coRlymSrv8h/0rxsUIfiNoku6BkllYTfAdXMdvRFCBnrBnVl7WDOfUYd4o?= =?utf-8?q?NNH57Zs8SN+rpgozScjT4Qy0Iq8qpVxNUJovJI/u3ZLFKlATHCuHJ73x6lYTDb4KK?= =?utf-8?q?Ah8Uv07agDx9/VCyQdr+SqVRAiXwrY1YiK8Eto77r9tKGSZHdc5vy1x0KgWaCJGyH?= =?utf-8?q?hjeA5qGn6+glCsZ+s3DeoF+wGZ5QMfeBPXwmjwiGCcyzNtZCCaFUMtoeuvdqR4Ari?= =?utf-8?q?NO5n5zV1GgLDSTxV30siyytWw8MHkZEdQIzhRUMJRXxEllZo88xlNDZa61oStJ13T?= =?utf-8?q?QgX3xDKCDEPaTbuItTqyjAEgPzCXXSVd3on6JvWBNnOEMLw5/sZ9Zw9vI//0MVQGh?= =?utf-8?q?XO9SCixo/0KWXRHXGXBni9UjVaxVJCJFbLELWMy9sBxGQfGdK3uLkGLEUYqttjlNG?= =?utf-8?q?pymhTt8arE4CdlIF+YOjOi0/2oZQOujTeSv9ov/46efL6hy+cg3XznuRztPPbWh9b?= =?utf-8?q?v0KMEAgRyvaTz0OV4qu4vS9cAFM5lh1W0Q2G9PcnlZ7Civ5drv+nCHiFy+MDVyRbo?= =?utf-8?q?654veFApZUi8?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76668523-d562-471b-b69b-08db6e52e32d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 10:17:28.2154 (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: eaWAkHbif0+d6RPm4Iw1WUWf6lMHrzT45CvN0BPFbM8OWw90TMxIzgm41DB1C7l92ihQmuCya8tz1XvSE77vLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6944 X-Spam-Status: No, score=-3017.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UNWANTED_LANGUAGE_BODY 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?1768854080300755108?= X-GMAIL-MSGID: =?utf-8?q?1768854080300755108?= Masking is not permitted for certain further insns, not falling in any of the earlier categories. Introduce the Y macro (not expanding to any output) to flag such cases. Note that in a few cases entries already covered otherwise are converted as well, to continue to allow sharing of the string literals. --- a/gas/testsuite/gas/i386/avx512f-nondef.d +++ b/gas/testsuite/gas/i386/avx512f-nondef.d @@ -24,4 +24,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 62 f1 7c cf 29 00 vmovaps %zmm0,\(%eax\)\{%k7\}\{z\}/\(bad\) [ ]*[a-f0-9]+: 62 f1 7d 0a c5 c8 00 vpextrw \$(0x)?0,%xmm0,%ecx\{%k2\}/\(bad\) [ ]*[a-f0-9]+: 62 f3 7d 0a 16 01 00 vpextrd \$(0x)?0,%xmm0,\(%ecx\)\{%k2\}/\(bad\) +[ ]*[a-f0-9]+: 62 f2 7d 4a 2a 01 vmovntdqa \(%ecx\),%zmm0\{%k2\}/\(bad\) #pass --- a/gas/testsuite/gas/i386/avx512f-nondef.s +++ b/gas/testsuite/gas/i386/avx512f-nondef.s @@ -38,3 +38,6 @@ # vpextrd $0, %xmm0, (%ecx) with non-zero EVEX.aaa .insn EVEX.66.0f3a 0x16, $0, %xmm0, (%ecx){%k2} + + # vmovntdqa (%ecx), %zmm0 with non-zero EVEX.aaa + .insn EVEX.66.0f38.W0 0x2a, (%ecx), %zmm0{%k2} --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1806,7 +1806,7 @@ struct dis386 { 'V' unused. 'W' => print 'b', 'w' or 'l' ('d' in Intel mode) 'X' => print 's', 'd' depending on data16 prefix (for XMM) - 'Y' unused. + 'Y' => no output, mark EVEX.aaa != 0 as bad. 'Z' => print 'q' in 64bit mode and 'l' otherwise, if suffix_always is true. '!' => change condition from true to false or from false to true. '%' => add 1 upper case letter to the macro. @@ -1828,6 +1828,8 @@ struct dis386 { "XV" => print "{vex} " pseudo prefix "XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is is used by an EVEX-encoded (AVX512VL) instruction. + "YK" keep unused, to avoid ambiguity with the combined use of Y and K. + "YX" keep unused, to avoid ambiguity with the combined use of Y and X. "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond being false, or no operand at all in 64bit mode, or if suffix_always is true. @@ -3719,9 +3721,9 @@ static const struct dis386 prefix_table[ /* PREFIX_VEX_0F2A */ { { Bad_Opcode }, - { "%XEvcvtsi2ss{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, + { "%XEvcvtsi2ssY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, { Bad_Opcode }, - { "%XEvcvtsi2sd{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 }, + { "%XEvcvtsi2sdY{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 }, }, /* PREFIX_VEX_0F2C */ @@ -3742,16 +3744,16 @@ static const struct dis386 prefix_table[ /* PREFIX_VEX_0F2E */ { - { "%XEvucomisX", { XMScalar, EXd, EXxEVexS }, 0 }, + { "%XEvucomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, { Bad_Opcode }, - { "%XEvucomisX", { XMScalar, EXq, EXxEVexS }, 0 }, + { "%XEvucomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_VEX_0F2F */ { - { "%XEvcomisX", { XMScalar, EXd, EXxEVexS }, 0 }, + { "%XEvcomisYX", { XMScalar, EXd, EXxEVexS }, 0 }, { Bad_Opcode }, - { "%XEvcomisX", { XMScalar, EXq, EXxEVexS }, 0 }, + { "%XEvcomisYX", { XMScalar, EXq, EXxEVexS }, 0 }, }, /* PREFIX_VEX_0F41_L_1_M_1_W_0 */ @@ -7004,32 +7006,32 @@ static const struct dis386 vex_table[][2 static const struct dis386 vex_len_table[][2] = { /* VEX_LEN_0F12_P_0_M_0 / VEX_LEN_0F12_P_2_M_0 */ { - { "%XEvmovlpX", { XM, Vex, EXq }, 0 }, + { "%XEvmovlpYX", { XM, Vex, EXq }, 0 }, }, /* VEX_LEN_0F12_P_0_M_1 */ { - { "%XEvmovhlp%XS", { XM, Vex, EXq }, 0 }, + { "%XEvmovhlpY%XS", { XM, Vex, EXq }, 0 }, }, /* VEX_LEN_0F13_M_0 */ { - { "%XEvmovlpX", { EXq, XM }, PREFIX_OPCODE }, + { "%XEvmovlpYX", { EXq, XM }, PREFIX_OPCODE }, }, /* VEX_LEN_0F16_P_0_M_0 / VEX_LEN_0F16_P_2_M_0 */ { - { "%XEvmovhpX", { XM, Vex, EXq }, 0 }, + { "%XEvmovhpYX", { XM, Vex, EXq }, 0 }, }, /* VEX_LEN_0F16_P_0_M_1 */ { - { "%XEvmovlhp%XS", { XM, Vex, EXq }, 0 }, + { "%XEvmovlhpY%XS", { XM, Vex, EXq }, 0 }, }, /* VEX_LEN_0F17_M_0 */ { - { "%XEvmovhpX", { EXq, XM }, PREFIX_OPCODE }, + { "%XEvmovhpYX", { EXq, XM }, PREFIX_OPCODE }, }, /* VEX_LEN_0F41 */ @@ -7081,7 +7083,7 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F6E */ { - { "%XEvmovK", { XMScalar, Edq }, PREFIX_DATA }, + { "%XEvmovYK", { XMScalar, Edq }, PREFIX_DATA }, }, /* VEX_LEN_0F77 */ @@ -7092,7 +7094,7 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F7E_P_1 */ { - { "%XEvmovq", { XMScalar, EXq }, 0 }, + { "%XEvmovqY", { XMScalar, EXq }, 0 }, }, /* VEX_LEN_0F7E_P_2 */ @@ -7142,7 +7144,7 @@ static const struct dis386 vex_len_table /* VEX_LEN_0FC4 */ { - { "%XEvpinsrw", { XM, Vex, Edw, Ib }, PREFIX_DATA }, + { "%XEvpinsrwY", { XM, Vex, Edw, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0FC5 */ @@ -7152,7 +7154,7 @@ static const struct dis386 vex_len_table /* VEX_LEN_0FD6 */ { - { "%XEvmovq", { EXqS, XMScalar }, PREFIX_DATA }, + { "%XEvmovqY", { EXqS, XMScalar }, PREFIX_DATA }, }, /* VEX_LEN_0FF7 */ @@ -7302,17 +7304,17 @@ static const struct dis386 vex_len_table /* VEX_LEN_0F3A20 */ { - { "%XEvpinsrb", { XM, Vex, Edb, Ib }, PREFIX_DATA }, + { "%XEvpinsrbY", { XM, Vex, Edb, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A21 */ { - { "%XEvinsertps", { XM, Vex, EXd, Ib }, PREFIX_DATA }, + { "%XEvinsertpsY", { XM, Vex, EXd, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A22 */ { - { "%XEvpinsrK", { XM, Vex, Edq, Ib }, PREFIX_DATA }, + { "%XEvpinsrYK", { XM, Vex, Edq, Ib }, PREFIX_DATA }, }, /* VEX_LEN_0F3A30 */ @@ -11125,7 +11127,12 @@ putop (instr_info *ins, const char *in_t *ins->obufp++ = 's'; break; case 'Y': - if (l == 1 && last[0] == 'X') + if (l == 0) + { + if (ins->vex.mask_register_specifier) + ins->illegal_masking = true; + } + else if (l == 1 && last[0] == 'X') { if (!ins->need_vex) abort (); --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -278,7 +278,7 @@ static const struct dis386 evex_table[][ { VEX_W_TABLE (EVEX_W_0FF3) }, { VEX_W_TABLE (EVEX_W_0FF4) }, { "%XEvpmaddwd", { XM, Vex, EXx }, PREFIX_DATA }, - { "%XEvpsadbw", { XM, Vex, EXx }, PREFIX_DATA }, + { "%XEvpsadbwY", { XM, Vex, EXx }, PREFIX_DATA }, { Bad_Opcode }, /* F8 */ { "%XEvpsubb", { XM, Vex, EXx }, PREFIX_DATA }, @@ -540,10 +540,10 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "%XEvaesenc", { XM, Vex, EXx }, PREFIX_DATA }, - { "%XEvaesenclast", { XM, Vex, EXx }, PREFIX_DATA }, - { "%XEvaesdec", { XM, Vex, EXx }, PREFIX_DATA }, - { "%XEvaesdeclast", { XM, Vex, EXx }, PREFIX_DATA }, + { "%XEvaesencY", { XM, Vex, EXx }, PREFIX_DATA }, + { "%XEvaesenclastY", { XM, Vex, EXx }, PREFIX_DATA }, + { "%XEvaesdecY", { XM, Vex, EXx }, PREFIX_DATA }, + { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA }, /* E0 */ { Bad_Opcode }, { Bad_Opcode }, @@ -660,7 +660,7 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { VEX_W_TABLE (EVEX_W_0F3A42) }, { EVEX_LEN_TABLE (EVEX_LEN_0F3A43) }, - { "%XEvpclmulqdq", { XM, Vex, EXx, PCLMUL }, PREFIX_DATA }, + { "%XEvpclmulqdqY", { XM, Vex, EXx, PCLMUL }, PREFIX_DATA }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -998,7 +998,7 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "vmovw", { XMScalar, Edw }, PREFIX_DATA }, + { "vmovwY", { XMScalar, Edw }, PREFIX_DATA }, { Bad_Opcode }, /* 70 */ { Bad_Opcode }, --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -9,22 +9,22 @@ /* MOD_EVEX_0F3828_P_1 */ { { Bad_Opcode }, - { "vpmovm2%BW", { XM, MaskE }, 0 }, + { "vpmovm2Y%BW", { XM, MaskE }, 0 }, }, /* MOD_EVEX_0F382A_P_1_W_1 */ { { Bad_Opcode }, - { "vpbroadcastmb2q", { XM, MaskE }, 0 }, + { "vpbroadcastmb2qY", { XM, MaskE }, 0 }, }, /* MOD_EVEX_0F3838_P_1 */ { { Bad_Opcode }, - { "vpmovm2%DQ", { XM, MaskE }, 0 }, + { "vpmovm2Y%DQ", { XM, MaskE }, 0 }, }, /* MOD_EVEX_0F383A_P_1_W_0 */ { { Bad_Opcode }, - { "vpbroadcastmw2d", { XM, MaskE }, 0 }, + { "vpbroadcastmw2dY", { XM, MaskE }, 0 }, }, /* MOD_EVEX_0F385A */ { --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -42,9 +42,9 @@ /* PREFIX_EVEX_0F7B */ { { Bad_Opcode }, - { "vcvtusi2ss{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, + { "vcvtusi2ssY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, { VEX_W_TABLE (EVEX_W_0F7B_P_2) }, - { "vcvtusi2sd{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 }, + { "vcvtusi2sdY{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 }, }, /* PREFIX_EVEX_0F7E */ { @@ -166,7 +166,7 @@ /* PREFIX_EVEX_0F3829 */ { { Bad_Opcode }, - { "vpmov%BW2m", { MaskG, EXx }, 0 }, + { "vpmov%BW2mY", { MaskG, EXx }, 0 }, { VEX_W_TABLE (EVEX_W_0F3829_P_2) }, }, /* PREFIX_EVEX_0F382A */ @@ -220,7 +220,7 @@ /* PREFIX_EVEX_0F3839 */ { { Bad_Opcode }, - { "vpmov%DQ2m", { MaskG, EXx }, 0 }, + { "vpmov%DQ2mY", { MaskG, EXx }, 0 }, { "%XEvpmins%DQ", { XM, Vex, EXx }, 0 }, }, /* PREFIX_EVEX_0F383A */ @@ -248,7 +248,7 @@ { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { "vp2intersect%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 }, + { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_0F3872 */ { @@ -357,7 +357,7 @@ /* PREFIX_EVEX_MAP5_2A */ { { Bad_Opcode }, - { "vcvtsi2sh{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, + { "vcvtsi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, }, /* PREFIX_EVEX_MAP5_2C */ { @@ -371,11 +371,11 @@ }, /* PREFIX_EVEX_MAP5_2E */ { - { "vucomis%XH", { XMScalar, EXw, EXxEVexS }, 0 }, + { "vucomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_MAP5_2F */ { - { "vcomis%XH", { XMScalar, EXw, EXxEVexS }, 0 }, + { "vcomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_MAP5_51 */ { @@ -447,7 +447,7 @@ /* PREFIX_EVEX_MAP5_7B */ { { Bad_Opcode }, - { "vcvtusi2sh{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, + { "vcvtusi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, { "vcvtp%XH2qq", { XM, EXxmmqdh, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_MAP5_7C */ --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -293,7 +293,7 @@ }, /* EVEX_W_0F382A_P_2 */ { - { "%XEvmovntdqa", { XM, EXEvexXNoBcst }, 0 }, + { "%XEvmovntdqaY", { XM, EXEvexXNoBcst }, 0 }, }, /* EVEX_W_0F382B */ { --- a/opcodes/i386-dis-evex-reg.h +++ b/opcodes/i386-dis-evex-reg.h @@ -23,11 +23,11 @@ { Bad_Opcode }, { Bad_Opcode }, { VEX_W_TABLE (EVEX_W_0F73_R_2) }, - { "%XEvpsrldq", { Vex, EXx, Ib }, PREFIX_DATA }, + { "%XEvpsrldqY", { Vex, EXx, Ib }, PREFIX_DATA }, { Bad_Opcode }, { Bad_Opcode }, { VEX_W_TABLE (EVEX_W_0F73_R_6) }, - { "%XEvpslldq", { Vex, EXx, Ib }, PREFIX_DATA }, + { "%XEvpslldqY", { Vex, EXx, Ib }, PREFIX_DATA }, }, /* REG_EVEX_0F38C6_M_0_L_2 */ {