From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2083.outbound.protection.outlook.com [40.107.103.83]) by sourceware.org (Postfix) with ESMTPS id 79F4E385414E for ; Fri, 14 Oct 2022 10:22:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 79F4E385414E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kzfGOOmfVN2K1cahXd8/gtzl+73rzLZ4F1njQ7jRu1sLfXqnWI7HDYqVP8uRzrqmb82Ty4nwBXkrs+/43UvDGOv404kdmQQmQYgqyDPdjlcn/Zf2oCc0Bxo//nVeHeg1M2eqL0y7hU+bGiTy766gOXhQdYMk+s9Sc9PHjNYq/WDF+Yd6CvRaJimyOaE5iyJJ/RcGAS4KmFOKeYeKKhBHNT91wcGxAYT551Vsdk72w6UXrSAyfH/LS7nTkMcu0IiYqa4pqG63tuIYUT4NYMTZAX0DUIbedfZ/a+967Qto3tMoMPe9dPNMsR8zr3Oy9rGssZ0NYcTv8oxjV9bZxmmy3w== 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=hXnf4Ww/Nzlusbu+lDwMQulErZH8V0CvscvN7tAmdqo=; b=LKCUhbeoG9STPyF3Prr3swQY1RT78Jw+sY8F+LEyxJ2WurCMLojQq6ZcFI+ippTD1h11bJZPc0HUm3HU1ZwX91uU/0UyiZdoUOwhQiScra61KEry3dY/rWXPlvDV2cYwSzzw4paZXJJJfkfx2V3IzocqFFMHcLfQsjNQ6MpIuWA+iOupa0k7EDPRvx8nfy/nvIR3yU83Cf6nXRdXQJvsWCSe/C42CWqEnYE9PgAxpyrMXSePlbLqxckgohJgZaHUWW3Uef/1XGOau27jBtrTp3kU8TnvhPCRdto4peavGAeg/Zuol3wLws8KQKuUvhXk0D/X8t4Meemr6EAYVctuFw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hXnf4Ww/Nzlusbu+lDwMQulErZH8V0CvscvN7tAmdqo=; b=cDjPRZ71uEA+HH+Lihuz9MWnj3Nkq1iDbEHIFgBoaXrtYL+GaAnbGPvwzr8q8L3TRcN0U3rV+otNldyafKcrfHPuaVWNHzmBptuY9GUiTuO9zAJLmsuf5bJxdrf2JwcyPK9pP7NxeSncvUypUCTDT7/i1eby8q3m5Rd0lWF4jWPEfaIzRvTKc/74AKBS6+hPyf47zLFaN1KQf0oVHVe8UvanreiQEB9AxtALikCx4A8WLhjgzG4xaaPHf+AUI+ctugYlq9RopGsQwswls0LpOiBuIDP+RbIemdl9thC40NfMUbXF6BPjWii9szZK+R2rkGnxJJdGnVKmk9flp76U5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM7PR04MB6903.eurprd04.prod.outlook.com (2603:10a6:20b:10d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Fri, 14 Oct 2022 10:22:36 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a%7]) with mapi id 15.20.5723.026; Fri, 14 Oct 2022 10:22:36 +0000 Message-ID: <7bac66be-535e-9051-d674-f2f5ba180e17@suse.com> Date: Fri, 14 Oct 2022 12:22:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Content-Language: en-US To: Binutils Cc: "H.J. Lu" , "Jiang, Haochen" , wwwhhhyyy From: Jan Beulich Subject: [PATCH] x86: fold AVX512-VNNI disassembler entries with AVX-VNNI ones Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::22) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM7PR04MB6903:EE_ X-MS-Office365-Filtering-Correlation-Id: 3913ef88-866c-465c-54a2-08daadce0374 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4/llVuz+/xIvnZetsc8pA8jx9c+GSeiGT+/BbRG1aJrdK8SrTYpwzkjQBfLoKj+Ae9BMR5F5T+PV3P1BF3+wTc/bqjeW01c0at1bCCy516uh9rPAbTRICJNRRoFKMYZT52YsW7VWD/h+oILWMAWGoYChx+O1iNSwZxPYVBUdcIrc+N7AAIj8/74TAuiddJOhx4fL2Pa/J6llvgrZCRSMIrD9hvB5tDLvMlXX4pu+pppDNZxPCCkhwXLVV0otRyXuFu22/OsknlbpxtM7SFn2x182Zf5cdb6gzxEUKEDERT15MN1Al+qKN21bFyMbwPQF0HkCaaUTeiPi9gpc5vGG9IyizAdKaL0wbkL+a42GmTuPQ8cQr52BFlXldszoNNvL2Cbwn5C+5pzpc8tACLdR5zv/zSaIh7dLcSZsTAiuywqKo6p5598ZE3hI1juqMsE748UEl4V9CbyzmLwZ110CJd0LcTnQCJwXJFHnzuc/wZb4IoALAuf7Nt5R7r2+k0GIcL8JfnxSck7mM78I1tKr9pRFgMAnczz4y1wtjFFwRIvYLBm2JeLpC2cEb4oWgDm4TdvQg5SoQYRbOGVj+PkiSZNX1Rm4Gkd4A6jkTrXFk710cI0CxPpR+mPvusyBZc09AnXtdhG7W0K0z/BGaLPPuYRbs6Qk5C3nTM2LEV2Wm+tVoq5Nl6lAPWhUDa2JlUIddhUBBgDsPS0V1rkdcxLD2rSqvwmF5Xgx0C997J7PVO1kVXfOIPrCK+X137DgnHQLvW3wOmDdZPcWv/Ee9kdJMBc4Qms7or3UF8bGWjJ04I4= 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)(366004)(39860400002)(376002)(136003)(396003)(346002)(451199015)(6916009)(54906003)(5660300002)(186003)(8936002)(26005)(6512007)(2906002)(6486002)(2616005)(6506007)(86362001)(41300700001)(36756003)(31696002)(478600001)(38100700002)(316002)(31686004)(66556008)(66946007)(4326008)(8676002)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cXcrR3NuV2trMDBiamtiTGtnUTFRN3YzZmRUNENHZE9PbmpvZERqdUlPT1ht?= =?utf-8?B?QU81VWlWS2NEZG1RMElkTG9saVg1aEY2YnI3MVdvNW5NT085Q2RDTlBSWDVh?= =?utf-8?B?Ni9yNDllTUZzR2ppdVlhL3FsVHgyNnRPUDhsa3BSQmhxVEI2ekUxR3pBb0hK?= =?utf-8?B?SUNzN1pMNnZLMVgxSFBVOG0wS3Q4VitNdUxLSW45M055c0xlaEpuWmdNUDFF?= =?utf-8?B?U3NjelJyYjRkMTd3ckdDVnFOMGdPUVB0ZDZKalB6NlVtNlJRdElXYitEY3pL?= =?utf-8?B?TlNZcmEzZE82M2dwTmNCVDJSSDJJbStJSHhMV1JLY2Z3aHlRUzlBRmRZNW1H?= =?utf-8?B?UEYrNzR0TXNNUW9pMWhEakNHU3VmbVNMZHZ1THVyRkxyOEFMUlhsSkJmVnZx?= =?utf-8?B?Yk5PUnpMbVNQbTRGTEtob1hoU0pDNHM3QmtzNlNhKzREVDNrVkQ4UWRzakVm?= =?utf-8?B?ZHlzSnlrVXNGWnM2eEpmMlp0RmpNc0p5NXcza1QxelFkRG9NcERRQWg3WlJU?= =?utf-8?B?TXZjbEdWdnlLMERWZEExc1h0aHNDWFdEVVJFSm56Zmo2MUdENGxVOG9XUWNi?= =?utf-8?B?d0pFOFRRN29DcWtWVk5RYUZzL2hnRHBiOHNPWEl5bWlFZXg0YXRXRGFMaXFh?= =?utf-8?B?VHJOQzAxV3RrSW9YTjE4UENnaFVFMTVxNm42MDUrS3l5aitkZWpCc0ZGZzhP?= =?utf-8?B?RXA5ejBqK3RrYjN4d0lkc2dySDZLTTd2Tit2RHZzWVFHc2Uxdlp6THJQZDVv?= =?utf-8?B?ZEJaY0k0bjFZSm45dHViSlBrVmQxMTYvMkZEL0U0SjM1YkNXRE45RjJaSGRY?= =?utf-8?B?TDA0N3N2SFYzSTVVS0pzSVNMOHJyVGJULzg3OTk1RVNqb01KdURiMG9jY3pW?= =?utf-8?B?WGF3ODY2OGJPTTJHZkFCeHNGcThJc2U4R2pMRmpBdFhadEQ1aFZJa01HVUVh?= =?utf-8?B?Q01XcUwrRTN5V1Q0MHg5cy9KTlJhRWNibUpEdnlseEh3M2NyL2JCWFZNeGZR?= =?utf-8?B?b21aeG12NzRjb24weXdUU2lmV1hKZUtNL1YweTJUNVk5Ylc5MXB5L3NQWTBV?= =?utf-8?B?b1NWR2RIRXkvb0UrY0ZRS09KVmx1TmV5Z3FkUm1ITzYwTW9LMmxnMzZXUEZs?= =?utf-8?B?YVBlV3E1QlRlL0dlTHVKcHUyQUdkVWxGRVJaUU44NFVKcS9JMnhNWllnM0FK?= =?utf-8?B?UE1taXBaZHBwN2xPR0ZmblZOcWp0Qzc2RDkyYUQrU04remhYQ0J0a0tjdUx4?= =?utf-8?B?SUFvdEJLQ2EvdVpiMTliSHl5T1VsRWo5RnRKVDE0RjBhWmE2YW1vYjBuaHZq?= =?utf-8?B?N0pZd1pSbU4rSXY2Y0FxSFJpckQ3TnNOL0kxY2w2Vk14UEtpRllKUGFySTJN?= =?utf-8?B?SGNEbU5odkJlZi9FakpMcC9ONDZ2UGp1eWZyOGNuK3dFQU42UFhSY0Y4M013?= =?utf-8?B?Z2VVR04rbytWUUVyUzVzd3o1ZDVkYjBnMWVYM3oxU2NhUXdMaWtSYWRmTWVi?= =?utf-8?B?WlRtSzhyYWpBTHE0OWNzTHFkSmFtUitaRG45M2J3SlhLUmtDQUtsYlV1Vy9L?= =?utf-8?B?WDZ5SCtCajFpaDdkbFZtdHlBMWNRMmF0aWdGVFZtMFlNMml2MHpvQUwrbW5y?= =?utf-8?B?N2ZMcktYeGxFSnNtZGRWbnZGTEdoN3RDdFdOcGd3bUNNYVV6OHExbjlTcVgy?= =?utf-8?B?RlpocXVZQlNta3F1UllHTUFpd21ZNmtDeTZaVEYyT3dMSjVaNlV0aGE2dGoy?= =?utf-8?B?R1BMNXUrTnVqR1UvTXNOL3NJNTFrNnJ2eldKd0ZqUVpGS0lVNEZLa3RMci96?= =?utf-8?B?RDZxN21KYWhIUng4dVNUTFdsdUtyc3JBQUlwQ3dRMVI1aVZSREpvc3RvZzNX?= =?utf-8?B?Mk9tMlB4azRYWHhwN3kzR3BFOFg1c3FTZ2V2Y2JpUi9SR2lLN1FIL3RQZytz?= =?utf-8?B?UC9IQ3o4d2pubnZuREQzM2JqcTRpS2JnY3JsQnBsci9uKzE3V1VJZWN3T2U1?= =?utf-8?B?Q3NjSWhrS0xsRlY0MDlselc5ZTk3RmdPT21UajI3bUpIeHNmYk10M2ExdjFj?= =?utf-8?B?MzUvbG1mODFYTVdGTUNLVXA1MFRXV1dLS3R2V1JWcEZuYTFmeEFvaklwTEdy?= =?utf-8?Q?UldtJBwY67XOG0Mcoin+TKVvJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3913ef88-866c-465c-54a2-08daadce0374 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2022 10:22:36.0107 (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: RWSUAy/FURiR89rjWsWjTNCFTdXrSgn+WNoCueIdsVslc+2D7W3AynTblz5MrSSnz8NOAfZ0LyY7xNLW8MQUig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6903 X-Spam-Status: No, score=-3029.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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 List-Id: Make %XV also print the separating blank in the VEX case, while making it do nothing for EVEX-encoded insns. This way the AVX-VNNI entries can be re-used for AVX512-VNNI, at the same time fixing the lack of EVEX.W decoding. For the AVX-VNNI ones further make sure only VEX.66 forms are actually decoded. --- Irrespective of this change I continue to disagree with the arbitrary printing of "{vex}" for the AVX-VNNI insns: If that's meant for disambiguation purposes, then EVEX-encoded insns not using EVEX-specific functionality by having VEX counterparts (vaddps %xmm0, %xmm0, %xmm0) should also be prefixed by "{evex}". --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1755,7 +1755,7 @@ struct dis386 { "XD" => print 'd' if !EVEX or EVEX.W=1, EVEX.W=0 is not a valid encoding "XH" => print 'h' if EVEX.W=0, EVEX.W=1 is not a valid encoding (for FP16) "XS" => print 's' if !EVEX or EVEX.W=0, EVEX.W=1 is not a valid encoding - "XV" => print "{vex3}" pseudo prefix + "XV" => print "{vex} " pseudo prefix "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. @@ -7545,19 +7545,19 @@ static const struct dis386 vex_w_table[] }, { /* VEX_W_0F3850 */ - { "%XV vpdpbusd", { XM, Vex, EXx }, 0 }, + { "%XVvpdpbusd", { XM, Vex, EXx }, PREFIX_DATA }, }, { /* VEX_W_0F3851 */ - { "%XV vpdpbusds", { XM, Vex, EXx }, 0 }, + { "%XVvpdpbusds", { XM, Vex, EXx }, PREFIX_DATA }, }, { /* VEX_W_0F3852 */ - { "%XV vpdpwssd", { XM, Vex, EXx }, 0 }, + { "%XVvpdpwssd", { XM, Vex, EXx }, PREFIX_DATA }, }, { /* VEX_W_0F3853 */ - { "%XV vpdpwssds", { XM, Vex, EXx }, 0 }, + { "%XVvpdpwssds", { XM, Vex, EXx }, PREFIX_DATA }, }, { /* VEX_W_0F3858 */ @@ -10711,22 +10711,29 @@ putop (instr_info *ins, const char *in_t case 'V': if (l == 0) abort (); - else if (l == 1 - && (last[0] == 'L' || last[0] == 'X')) + else if (l == 1) { - if (last[0] == 'X') + switch (last[0]) { + case 'X': + if (ins->vex.evex) + break; *ins->obufp++ = '{'; *ins->obufp++ = 'v'; *ins->obufp++ = 'e'; *ins->obufp++ = 'x'; *ins->obufp++ = '}'; - } - else if (ins->rex & REX_W) - { + *ins->obufp++ = ' '; + break; + case 'L': + if (!(ins->rex & REX_W)) + break; *ins->obufp++ = 'a'; *ins->obufp++ = 'b'; *ins->obufp++ = 's'; + break; + default: + abort (); } } else --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -383,8 +383,8 @@ static const struct dis386 evex_table[][ { "vrsqrt14p%XW", { XM, EXx }, 0 }, { "vrsqrt14s%XW", { XMScalar, VexScalar, EXdq }, PREFIX_DATA }, /* 50 */ - { "vpdpbusd", { XM, Vex, EXx }, PREFIX_DATA }, - { "vpdpbusds", { XM, Vex, EXx }, PREFIX_DATA }, + { VEX_W_TABLE (VEX_W_0F3850) }, + { VEX_W_TABLE (VEX_W_0F3851) }, { PREFIX_TABLE (PREFIX_EVEX_0F3852) }, { PREFIX_TABLE (PREFIX_EVEX_0F3853) }, { "vpopcnt%BW", { XM, EXx }, PREFIX_DATA }, --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -233,14 +233,14 @@ { { Bad_Opcode }, { "vdpbf16p%XS", { XM, Vex, EXx }, 0 }, - { "vpdpwssd", { XM, Vex, EXx }, 0 }, + { VEX_W_TABLE (VEX_W_0F3852) }, { "vp4dpwssd", { XM, Vex, EXxmm }, 0 }, }, /* PREFIX_EVEX_0F3853 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vpdpwssds", { XM, Vex, EXx }, 0 }, + { VEX_W_TABLE (VEX_W_0F3853) }, { "vp4dpwssds", { XM, Vex, EXxmm }, 0 }, }, /* PREFIX_EVEX_0F3868 */