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; }