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