From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2058.outbound.protection.outlook.com [40.107.6.58]) by sourceware.org (Postfix) with ESMTPS id A67C03858C41 for ; Mon, 23 Oct 2023 07:12:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A67C03858C41 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-Filter: OpenARC Filter v1.0.0 sourceware.org A67C03858C41 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.6.58 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698045142; cv=pass; b=q8ggHsigaIW1pTrbl4L4whEpSoS+zjr2i2L9F5iDYAiZkcCathvKHiLc4rD4wem54dfZTMW1KuSDcnHA5DHVSn4UHyP6V+I9RXNIHrkKlu9+tVKaRgrZ0Y6xaDTPZycDiOCLnY+OrI5B1G+3sJfKu+PyBmVhDc6FQZIgqzIoHKU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698045142; c=relaxed/simple; bh=cnBkoPgbFBICz9osH7/EHItl5i7DrT7E7MlyeONwCbQ=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=Y5xXw+uOWTD/BjhcaPCkflZWUn5On9t8d90FIjA5QZovZ/fWVVn0+tXYHug1GT504ISakjcdP+4rSlU9OMfNNEMWcEiSRI7JLpRsSIQdolDu2VVSm/3dsDFewm+LnT3+8xEXm7SmuqDfyBzXVB/cb0uF9dvUOXfrlMe32m5FP9s= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RlV5f9iLd7Fr60HDKQXjTLHSdTKqrKq3mMvZ77I3RDqsdL83Pa/35iAa2MwEBPlPptaV0MMMzl7yRhdzC7ZsFaANLkCI1NOV75fn/V/mS7LoYsAPQiw1TjSUg43N3scy/m1NbJ9clFAxEOpt5WXfL0yGmQ7VCTNQ36m0u2Y4RaafcHRT5DUFf/Q64PvoQiKdv8utDdxQa9LUOVSKA3djFM2IYG4Ala2oMyRRCMa+vIFoZ5Ng18XU6Rl/rpeMsqw+z9JlJ2HBP1ULcKzXuDrXFIF65ksdq8pPx7BU04cxAbme4U7Os5ZxcjWYKm42LovqK5mvQQFCDCAaWRi1t4F9pg== 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=fOtkJHdOeWvuhNzFk6nwgKY8nNl36rHBGCvDiVu0Jl8=; b=hs7hguAGRHFY+zGQdq1jTulCCqT/N4sCDJu4Lt3tx0DgNy7G/p74HROo6C2jqYprloeeW5YVpdgcJAFjm0tDaOWwAmZXNDI1SsQWVMg2Osjq6SYOYeDwQ+W/PD47jA2uQwBb/2SVD3N1zJuKy/74qITOVoYTpQeRzP0hslk6YUNNxIzIs2fWqV9Sjgtk1sdzAKIVRqUQ+VMivlLgOXY9t4qdUAxNHXlhu7yQl9+GuDRTqTbAhLZKiJ2mAHTjFw0QsDluTAxdCEnDrLlxcj91j37onH+essg42s1Wr6ucxaMyf0tcYCs8rck1IwlfWkAwPprf7qRyLFokzHP7uBUEEA== 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=fOtkJHdOeWvuhNzFk6nwgKY8nNl36rHBGCvDiVu0Jl8=; b=3j69yinwMdzYfXbCAHubRpM99iJtTt4uOXb3DyMcnY7FFhJfVWOAWBNi6QYnO++T1xUBXC2wTPk5ORBALfNiM9Selfg21nE0b1Z4eohrtwWe3hiczH1BsAUOTLTwT4buKXLJKHrjeA3p7HEv8pZ4OaEoVXa/nNHMxCT0wnhJ5X52Pihbt5OmyMHY2SJVgTWVx/KXl2Gr1qiFHR/zaOZCLLFajIZ+RlrQGduXirFxh2/lIl1t/2XV0DPNt57z0mYk27jE4dOHHv99HArJDCcjr5v8w1u2C/R4vUwphYZohhbUrCAY72ViLgCodLK1ATM2J5YORTtSwo4+TMUoMIf4Zg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by PAXPR04MB8638.eurprd04.prod.outlook.com (2603:10a6:102:21d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.14; Mon, 23 Oct 2023 07:12:17 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25%3]) with mapi id 15.20.6933.011; Mon, 23 Oct 2023 07:12:17 +0000 Message-ID: Date: Mon, 23 Oct 2023 09:12:16 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH 4/8] Support APX NDD Content-Language: en-US To: "Cui, Lili" Cc: "Lu, Hongjiu" , "Kong, Lingling" , "binutils@sourceware.org" References: <20230919152527.497773-1-lili.cui@intel.com> <20230919152527.497773-5-lili.cui@intel.com> <9d317289-6d83-3f9b-ef34-af574e798a3f@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0227.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b2::7) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PAXPR04MB8638:EE_ X-MS-Office365-Filtering-Correlation-Id: a07f76fa-2dc9-45cc-e1e8-08dbd397640f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: susWpftxFMmmprVZn7qC/uucUEKp2aWI/z+f1PF0Zvly2ahZ9sGqo3INu+qtTeU6w7Bzjg1xpO2PKZ6HIghyarvJN4zSZ1bU9E6/XkTvhsA91RM0l65djYaJYG+gvmqysk04qSO3Fl8JhP/ACVl5iOxHH4Q5EHi9soZui96qPnPiNGPLtI5qkg1RRfus1j1gH4cr4Zqbdb347BbfyAvvLzTlbJUdZr7vAdN7L2lBdxLmM8TjShwvLnZkXztP77n9/4rlDTvlQHzw03O0THmKoAXrVEa0u23lqNEY7roAbi2qtIKDi/vUYkC4KAZcCm7KJWDcNbIfp93E1YbJf/eArrEOLWbbfoa2wQv4taRARHOYVcxha7e+lBNzKuKvCYQMFyPhdiBtCgk2ULrdi35VYDYRGowssxJ9lXC7WJ4EORhzseJXwI7X4ZZTLJk8rTD/OTE25qfFKyxG0puJwDQR6FZc7A0uWu0NTWkom6WfWLITCd2sJtCdQMYLy+IzuQ0vdUbD4WmuAdHiSjlCI8Qc3cJbTXY8icNPi1ZS+DPBgqVpYR0v7mAqQeutafEeaFZyiL6/++z/UYXNbzND0UvSD3xfsr2lM5jZBjOVSkoJykPdnyHxCvyDiNc25OQ75GBlwBsAYbgNx09E07YWFiCQ3Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(4326008)(8676002)(8936002)(41300700001)(2906002)(5660300002)(53546011)(36756003)(6512007)(6506007)(38100700002)(2616005)(86362001)(66946007)(26005)(31696002)(66556008)(31686004)(6486002)(54906003)(66476007)(6916009)(478600001)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWE1MUh2ZHd1Si92dTN5QU14R1ZkQ1JMdnRJSVBJZDFtUWc5UVJxc2luUGgw?= =?utf-8?B?SXRkWFRsSU9GSFFXQ1pZbFVnWlhyUEQ0WXZQRGRLbHEzcEJoakM3d2lqcFpy?= =?utf-8?B?UlhGM1ZNcVNzbWpMTFpseEFnWC9FWllsMzBVak8zWUpzY0oyMzFQbVF3eTFV?= =?utf-8?B?NkpsNTBEQWNVY1NNNktTWUVLZER2eW9wWWM0R0I4UjZXOUNlS09xWnRIRlpX?= =?utf-8?B?VVZOMUROZFNzaWQ3dWt2RmZJbHI2REZ3TEdwSFNaR05GcnBSaTZ2MWpXVHZZ?= =?utf-8?B?bTE2ZTdneWI2RW5wVmpBc25WcVhZVTNTVitPMGU2bytER2drNmhYRUROQVp2?= =?utf-8?B?OHBzbzF4Z1FrMkFCVlpQQXdTN3Y0M2tnVkhjMjAzUHRUTy9Ickd5bkdhNTFx?= =?utf-8?B?TklEZDQ1YURtQnlza3UxRHhaZy9tK3RjSDgrM01NMG9UZkIwcHFobzByQkhp?= =?utf-8?B?WE1wQ0lCSkpJcUJkRWxMVEpPaS90QkQ5VVM5cTlaYjllMTkway9UVm9teXpZ?= =?utf-8?B?clZSNHEvMFlsQzVCTktyQ2VkeDM0L2MyVU04N3gxeHBLQ0FuNk53OUNVcHNy?= =?utf-8?B?UGdabDBUSVM4VFJNRzV4YnNIVGs4ejJPQ1RkQ1p3VkpoK0RtYnlmUFdpdWdl?= =?utf-8?B?ZHhtSjY4WUdHY0JtWkhaS00yM3V1aW9FRFBXdzZLd0tNUkJBRGRXNFVsRmxZ?= =?utf-8?B?eTFpYUFzcEZHbWcwZXpueDZoMGhmYVIrc05VMm5VVlNSQUExblMydEhoK2tw?= =?utf-8?B?bG8wRkI4aW5BWFNNbkxscUNaVTduSk1TRTdjRnpCQW8vRE5uOHkzbWErRGNt?= =?utf-8?B?d3dRT2xoVG9ZUDk2Qkp2U1grdGZaQXBDc00vdmduRUhuQmRYWk5HbWpnQWlL?= =?utf-8?B?TllLSkpuWE9kWWRYSmR0MHBGL01RTEM4RTBDbTlOVWJkSDhxUW8wSm1veGlt?= =?utf-8?B?cGwybmhxQVZlTW5ybnlxc3lGUXpkL2R3NjUvRENPNCsyL0dKdERUM0I3dDlv?= =?utf-8?B?SWsra3VXMVNpYjFNdUpLcmhzL2NYQnRObWFaRStYVUllRk4wcXk0MkU5cDMv?= =?utf-8?B?VzhJelNHVWFkVWZ4VjRkcnAvZGNralpNWVkzUDAyTE5MUHVKNUNEMlJCdExP?= =?utf-8?B?emkzTmszeUxJalhrTUZJWWF1OFBSTkxsaXV3WWFCRmhGSExmWVpMa1pwOVdz?= =?utf-8?B?MEJ2Sk1URFRSNVV6OEc3RDVybXc0OXJzOEFPS2tWeUtQK3dUYm9FM3J5dEo0?= =?utf-8?B?d3MzNmpVWkxaSndtd1FJZ0lBSTlVbEIrQVlEcE1kM240WU1YM1grN2hlWFZi?= =?utf-8?B?enBsUUphejM1cW4yeDkvakdEU0NJaHQ2MGpiVGhVcXpoT3hCQ3dEck1FVmF6?= =?utf-8?B?R3JvYllqNzJqSnhhd2Q4TU01Nkh5NDVyMVRsMlNSaHZjRzhNN3RjKzdDd3Ns?= =?utf-8?B?T0lROWFyZ3RNZisrcE9qZTJwa3pDV2x0emFwaDd3cWlPTHp6SGJVdm92ZUtr?= =?utf-8?B?S1lrZzgzeDlFUk1zTHFrL1plNDdWbVZGanRhc1puaWlpak1YMTYzdldBdXFv?= =?utf-8?B?d21qN0d1SnQ3N1ZDRm93WE0weTZaa29sK2xjNGI5bkRETjM1VWY0dFZpaFJo?= =?utf-8?B?VW9xOFpLclVHZUVldFR4YWFhQW9XMDFYN0FRcUxjZHE4RVZ3Y3ZZeWdTdWlL?= =?utf-8?B?eUNWVnp2cGZCOGlJQWhRbjk4ZWkybkgzV1Y3S3JuRzVJS3RkSFBydzZBV1Jr?= =?utf-8?B?MGlVcEpNd0tiM3ZNai9aRVI1bmE0YlZjVEtwRS8rN3BlcDFQMDc1aTZvRDZa?= =?utf-8?B?WGpJMG1NSDNqb0pKYW9YR2ZLQS9oQ2FMb0pJVXdFOEt1emZSQmVRN2NVTG1H?= =?utf-8?B?a2tYMlB3Qm5kZDdSTEc1Qmt3WnNNQ3NCcW53ZGhMbVRRU0NpVDJQTUwvQk9i?= =?utf-8?B?QS95UjBhblJ0OXRNYUwyL2pLN2hkRkVxWFZvOUhFM05TNWIydmZYdUNVd2JG?= =?utf-8?B?RFRoQ2JzVWxpdjhhY25xZGpHVS9haXhDcStaU3dWVFVpaHVJa09zU2VOYnha?= =?utf-8?B?NThUMzFQcEk2b0VBaXBHTHA0M09DWWFwbjFoRklhOGc4UUhTb2ZOc1V5d3Yz?= =?utf-8?Q?7OVCoj3ExrqK8AzAfTYFO6Fl0?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a07f76fa-2dc9-45cc-e1e8-08dbd397640f X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2023 07:12:17.6345 (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: cWW7zbHqMtUTgkze3H4oC94SF8jEOtOG28Cg3s6NA22m7aa82BP/LWCbBsfBBpxocTs9gQ5stidO8ywEeEHKJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8638 X-Spam-Status: No, score=-3028.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 22.10.2023 16:05, Cui, Lili wrote: >>> @@ -8825,6 +8853,9 @@ build_modrm_byte (void) >>> break; >>> if (v >= dest) >>> v = ~0; >>> + if (i.tm.opcode_space == SPACE_EVEXMAP4 >>> + && i.tm.opcode_modifier.vexvvvv) >>> + v = dest; >>> if (i.tm.extension_opcode != None) >>> { >>> if (dest != source) >>> @@ -9088,6 +9119,9 @@ build_modrm_byte (void) >>> set_rex_vrex (i.op[op].regs, REX_B, false); >>> } >>> >>> + if (i.tm.opcode_space == SPACE_EVEXMAP4 >>> + && i.tm.opcode_modifier.vexvvvv) >>> + dest--; >>> if (op == dest) >>> dest = ~0; >>> if (op == source) >> >> These two changes are at the very least problematic with .insn, whose >> behavior may not change. I'd also prefer if we could get away with just one >> change to the function. Did you consider alternatives? We could re- widen >> VexVVVV, such that the value 2 indicates that the destination is encoded there. >> That then also has no chance of conflicting with .insn. >> > I added value 2 for NDD, if it's ok, I will create another patch to move (i.tm.extension_opcode != None) to VexVVVVDEST branch, and use value 3 instead of SWAP_SOURCES, maybe name it VexVVVVSRC1, or just VexVVVVOP1, VexVVVVOP2 and VexVVVVOP3? Hard to tell without actually seeing the code. What you did quote below used just SRC/DEST. > /* How to encode VEX.vvvv: > 0: VEX.vvvv must be 1111b. > 1: VEX.vvvv encodes one of the register operands. > 2: VEX.vvvv encodes as the dest register operands. > */ > #define VexVVVVSRC 1 > #define VexVVVVDEST 2 > VexVVVV, For readability maybe insert underscores (and if SRC remains un-numbered, maybe also DST in place of DEST)? >>> --- /dev/null >>> +++ b/gas/testsuite/gas/i386/x86-64-apx-ndd.s >>> @@ -0,0 +1,156 @@ >>> +# Check 64bit APX NDD instructions with evex prefix encoding >>> + >>> + .allow_index_reg >>> + .text >>> +_start: >>> +cmovge 0x90909090(%eax),%edx,%r8d >>> +cmovle 0x90909090(%eax),%edx,%r8d >>> +cmovg 0x90909090(%eax),%edx,%r8d >>> +imul 0x90909(%eax),%edx,%r8d >>> +imul 0x909(%rax,%r31,8),%rdx,%r25 >> >> What about imul by immediate? The present spec is quite unclear there: >> The insn page says {ND=ZU} and the table says 0/1 in the ND column. >> > > We don't support it yet, I put it in RFC. > ... > 2. Support APX ZU -- In progress > 3. Support APX CCMP and CTEST -- In progress > ... > > About 0/1 in the ND column, it means ZU can be 0/1. > > IMUL with opcodes 0x69 and 0x6B in map 0 and SETcc instructions > Although these instructions do not support NDD, the EVEX.ND bit is used to control whether its > destination register has its upper bits (namely, bits [63:OSIZE]) zeroed when OSIZE is 8b or 16b. > That is, if EVEX.ND = 1, the upper bits are always zeroed; otherwise, they keep the old values > when OSIZE is 8b or 16b. For these instructions, EVEX.[V4,V3,V2,V1,V0] must be all zero. So ZU indeed isn't just a typo there. For 32- and 64-bit forms, is EVEX.ND then simply being ignored? The ZU really is meaningful only for 16-bit forms, aiui ... >>> +.byte 0x62,0xf4,0xfc,0x08,0xff,0xc0 #inc %rax .byte >>> +0x62,0xf4,0xec,0x08,0xff,0xc0 #bad >> >> As before, please avoid .byte whenever possible. And please have a more >> detailed comment as to what is being encoded, when .byte cannot be avoided. >> Plus, if at all possible, have "bad" tests live in separate testcases from "good" >> ones. >> > > This case wants to test that inc supports evex format without GPR32, patch part II 1/6 will cover it. The first case has been removed and the second case has been added to x86-64-apx-evex-promoted-bad.s. That's all fine, but still wants expressing with .insn rather than .byte, if at all possible. Jan