From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2075.outbound.protection.outlook.com [40.107.8.75]) by sourceware.org (Postfix) with ESMTPS id 4A17E3858401 for ; Tue, 18 Jul 2023 08:51:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4A17E3858401 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=CVNfEWsOxYyXU0hLtfft9FQ6ny7IaGi2iDmRHVLOzqPDzuVHQ1QVoKWqMi7xNI1B6DcDLbJ0TerXp95JNoQiFeeRP+5vPdZ9Q85vjzE2QbSt/hmzYr7vVal0JRESREkV8dj9fUPxF7eIgQXgcJ0jlpigQrmhXzuf/ouDr0DHQ4Aokmm9PW5NeOHppO6iP8rRjnlpyfjmeX2YDFCHWaPCN5yTBZOcoSrLjTYxPPdN9CrlrC5E7n4kEUydgqHj4M3H2JamNcl3aAyNKWG2qul6j+R37YL1X5OLY9Zb29RuYYW+G8wNxX8qKQsSArO4xJpBB5jKmyQ55DKKfi76AsXIXw== 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=lgxM/KZElxwtL3c4/3wyDO34tto2u/g53y+5x2bOvd4=; b=j86tZ83ycHSgrh2VHDJmKJIj0TyGC3IuAyEIjzRoN2yEu/ve9GhWyBb/X1SdRsF7hCUYnHX0E65NnMc2Vi2e0QXE3aiVkWpXm+qJhfQxaLTLgXqm3rXmBUx11Qd4O+ZFatCR1iXz1Li5xNdgSY0Mh2FiTLWNNpY+huEDZjCV2m3wp8aCz8AYc5dJ+YWqr15dDdk9Y9AopbfoYOYEGkXQpCMnl+Dhnj3GhKjNBVsgvLaBXCjS5LgSJ9mPsSJgArpfGZLcn6DT1MkUSh+D6yO3owYhGuC4d7Cllj3v79EmDwZ+jGwH8kSnF+F7GpFVS6X0ohEty9kVeoEHTSZCRZU1UQ== 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=lgxM/KZElxwtL3c4/3wyDO34tto2u/g53y+5x2bOvd4=; b=DpNCIiep12FoByfomjzNhslBKB/W90MBNOS8clY+sj5gYtVEq7bB7F4Kzvi1oPLNjfbt/cbkLgkghVvmnnBqOs5KpnV0KoXVFcXdyUDRy+lUCARHFasjthtgwrTyR6ioUgT7KYtlUjmAqfSwQd0NFvkwW6ioxiqpgrGmfWU+D9PybpWzFgi/I0sIZ7qWGz8xMr+0vuGppuUOReokPeDlK79J/bSiFvp7T4H5hiYpqZ1YnHvCXLi72Xy9raasIa7ESSDmOEGSmBVi7nSdSRsRTcT5Pumx6o76cjpXZMYX1W8RUG2sMbb+++YnmHL9uoO8QoWWJhro7POPdNL8ZVbtPw== 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 AM9PR04MB8382.eurprd04.prod.outlook.com (2603:10a6:20b:3ea::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.33; Tue, 18 Jul 2023 08:51:48 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::e5cf:5743:ab60:b14e%5]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 08:51:47 +0000 Message-ID: Date: Tue, 18 Jul 2023 10:51:45 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v2] Support Intel SHA512 Content-Language: en-US To: Haochen Jiang Cc: hjl.tools@gmail.com, binutils@sourceware.org References: <20230718075412.1304548-1-haochen.jiang@intel.com> From: Jan Beulich In-Reply-To: <20230718075412.1304548-1-haochen.jiang@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0052.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::23) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM9PR04MB8382:EE_ X-MS-Office365-Filtering-Correlation-Id: 0476e320-308a-4a95-39ba-08db876c3887 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bSrkAVnLR619PHGO0a1w91Wu++gnnYyT8KgOpgVBr54YJduKhe9xPTVUEKsGBzZ+7UVsMKU7DeL+9KnuTCQNAqt5BW95LBGI6mbNaAY+W+lYUKMJyA9lR2MLqQYZEdr5yrKZx0xcvOSXtHXWFfYziARohfz37vAy1cJYugfbslDMOce8h8UmwBJos9xfjcrF6BFWYtIid9r3K0tDkvS4XJ9/FMlWIJy7ZuOirFF7ZKEF1TvEBilqxxURzRVEBIHeh7R+NQ/0dk4s5gnOzkLN0jln/tRw6ESGbf9kYT7k2zBf6D1w5aUSnLwGuYaFMhuBbUNCJLfCTQoVUCBudFLtvtXzkREzfYBhbZP9hewpUqZ4MGlhr4FZ5zBaqidJXtocyE1z2/8RX42aug18jTSq5PWL8as6NOU1RwxIkPd7HmeQlwok6qOlmUdu+nHZz5jH/ifGt/3UmEQqVrMRhxaKJKDTbND8qe9ftcqplglTiTrd/mUf/D3/Z6CjOU5QwWblm2sPZaFgydWWUT6AuzLdVRnqUZGaI9lzheimXPlGIe5ckbHZ6Ra1oNUgH5r1eSIPqTfgnsXwNCuix463aOVpn37yP6UGIuOoDuWaAjLoAF/X6ZVgR1fJdeKfpXlzU7dq+UaHIj2u6kh2h9uuxYsoZg== 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:(13230028)(376002)(136003)(396003)(39860400002)(346002)(366004)(451199021)(6486002)(478600001)(83380400001)(6506007)(53546011)(26005)(6512007)(38100700002)(66476007)(66556008)(66946007)(6916009)(4326008)(186003)(31686004)(2616005)(5660300002)(316002)(8936002)(8676002)(2906002)(66899021)(41300700001)(86362001)(31696002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RnRramtNYjZXNDVieU1qTjFtVWFYR0ZhUzBQZ0NpWmk4NXFqS3BwdjZycDhV?= =?utf-8?B?dE9nbmx0RWdNSFh4MTMyMEhYWStQejY4MEk1WlhCNHQvc2xBVWU5NkFsNEJj?= =?utf-8?B?SmUyUGtvNVBMU24zWGNUSXV3WStXY1pLZDB2ZnlmeE16L0FFeGhRQUFyellj?= =?utf-8?B?QUZXS3lsdWN2SjMwcXdWN1NBbCsxMWNsQ1pRVzZxU1pMVXZUcWpzVklGWGRx?= =?utf-8?B?V2hJU2JCbEhZL3gveE94WmN2eVhPNGhlUThiV2laUno3RXJWL0pUVkFCMU9Z?= =?utf-8?B?bkR4Wis1V1hEUFh2UkJGVTZPQk1FcFAvMWtjTTMxa2RFSnU1NXpPOGNhYVZy?= =?utf-8?B?S1BzbnhLSjVLaWhOS3pZSjJUVllVMHhuRExzd042eEVySjNNUlVBbVJuYzA1?= =?utf-8?B?WURDTnk1RWJCRzNqSHduVjUvaUJ2VDJtSGhUZUcybHdDZnhxcTB6ZWJjRWpr?= =?utf-8?B?Z0VWQzAvYUw0OWg0ZlFZQmo5WjVtU2tPWU1uakdyT0tjWmJRcFlubytiNVh6?= =?utf-8?B?d3FkMGJWeENNRFRsSTFERkMzTEI2NmxZbGxNVHhLbkpjSVZ2UkVyWXVCZDZi?= =?utf-8?B?dVlGK1RmVWZYVWhpZTZ6UHYyRm5RYmFkS3dpTzlzbzlsSzJBemliREpwUTFU?= =?utf-8?B?QUNLVVVoTzB5NllISHV6cGNjRWhLYitZY1didmFTWmdIUFRGK0VTK01keVl0?= =?utf-8?B?WS9OcVppZnAwNVVvRzJxK0JnSzVMcWl0blBMejNtQTIyUWJYZWw5OVp5M2Z1?= =?utf-8?B?V1B2Q1IySmwwcFd0bEpSZmY2UHYzSlloczFnMHgxUkgzYnVDbnR6bCtuQjJp?= =?utf-8?B?endaZ0hXUTJBVGNsOHN6SlR6czlmQ0pIandWU3NCNmhzbzBtWjYzRUVyR29J?= =?utf-8?B?dG43VTdnOXhBWXFFNjcvQU1VcE9vS1NncU9Wb0EyWDNQcDh3OTFybnhuVDJ4?= =?utf-8?B?VWJKeWdrWjI2TUVXbGdyb2F5aDFLMXBJZFVibE0rOHZXVldzZXVMUGtQUHZV?= =?utf-8?B?V0E4RUJScVdmNm9jQ2dJczlST0xOeS95WjhCRExWZHFpVEQvaHRZZjJtUkY3?= =?utf-8?B?TjMyQWhlcU5lYThyZTlHRnlsc2JOM2k4YkRXR3FXQXh6LzdNMWQ4bHVUS3lr?= =?utf-8?B?TTB4NUgzTXpSaisrRDhHcTZoKzVhNEFFVyttUEV0Q1BwVDN6Qnd5YVd1Um1V?= =?utf-8?B?OE00dExBZ3lPcEZ1ZVltQnNmTXpwamI2M3JNOEt4dUZ5ZmV5ZHEzc3VtL3Mz?= =?utf-8?B?dmQySzVaODh2eldUYW12ZUczTE9KTDBzamdZRGhWdkVxMkNIUnlQTHNrOFFp?= =?utf-8?B?elVjZUduN0tybFFHcyt1VUM4bFREaVZYaDhjbmwvaEVUOC9jS2U5NllXRVVl?= =?utf-8?B?K2hvVGRRQTE5Ym84Vy9MRkdOaXFvL2tLVmRRTnpUVHQ0aWVmTFlxRUNST0pk?= =?utf-8?B?a2ZRQXFLKzBJVW5VYXdhSU92TGRtdlpldXdWZFFhRnJFTW5hWHY0enJJbEVY?= =?utf-8?B?Z1FPRGxxclFlREFjSDJXWTkzOWhzWkRBYWxUaXQvOVpERmFXc0VIRGh1ZXpX?= =?utf-8?B?WEwrVDAwMDNMS1lieXRNdmM1OS9XdXo3cXdHTnNET3pJdGhhSjl3Z1FKMHJD?= =?utf-8?B?M3I5MEVvQWw5dTU1U2h4QVg5cW9kbkErOE4rMEpneERteVk3bnZuamlIMlhE?= =?utf-8?B?bkIzZjMrSjBybTBXTmJyaXl0Q3o3RGZOdWVFcGpibndnclFUUzU1bjZDQzlF?= =?utf-8?B?OXpMSlNOK2dQT3dEVjVTdTZvUUt3NkVOYXZSWldKR3ZrQnlnVm5LUlN6R0pS?= =?utf-8?B?Nm1PZFRiR2ZoVWJ1c3JpQXZPZUxrY3dmR2xVK2xlenptV2xBRXM0RU1IRkph?= =?utf-8?B?dHE3VDNRcHlRK3crN1pWUDNoeXVyVC9MUlpaZDdHOWQ2dmowOTIwN3pxdkli?= =?utf-8?B?NC9MVWpjL3BGbzFPakhmQUtZVVduVVNtb21PT1FaeHRaNUw3emQvaXozVWhN?= =?utf-8?B?dm9NUjA2dUI3SDZtSXI5VU9NZGJQejU0azhqVm1iYTBJNVlZcVJQTTlvTjMv?= =?utf-8?B?YTBua2JIRWhyRWxFTzBrRERqQTBiTzZaWllLZHpmaC9QUzBuNXJnd2g4VVdy?= =?utf-8?Q?gK/7VxqPUFv/OP3qlIsNyYZw/?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0476e320-308a-4a95-39ba-08db876c3887 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 08:51:47.9139 (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: wpO5bakNcepJscHY26hVJ5p1B6ZRTsMcPYY/jdYXB4bi7UL+Dp0ewrqeRmRUscnlkkMSv6HB1VuKp2BQt1lsCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8382 X-Spam-Status: No, score=-3027.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_NUMSUBJECT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no 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 18.07.2023 09:54, Haochen Jiang wrote: > --- a/gas/testsuite/gas/i386/disassem.s > +++ b/gas/testsuite/gas/i386/disassem.s > @@ -168,6 +168,12 @@ > .byte 0xC4, 0xE1, 0xF9, 0x93, 0x6F > .insn VEX.L0.66.0f.W1 0x93, (%edi), %k7 > .byte 0xc4, 0xe2, 0x1, 0x1c, 0x41, 0x37 > + .insn VEX.L1.F2.0f38.W0 0xCC, (%ecx), %ymm1 > +.fill 0x5, 0x1, 0x90 > + .insn VEX.L1.F2.0f38.W0 0xCD, (%ecx), %ymm1 > +.fill 0x5, 0x1, 0x90 > + .insn VEX.L1.F2.0f38.W0 0xCB, (%ecx), %ymm2, %ymm1 > +.fill 0x5, 0x1, 0x90 In new additions here (and to similar files) please can you avoid - .fill / .byte and alike whenever possible, - unindented directives? The latter is purely style, I know, but strictly speaking directives should never start in the first column. Present gas, presumably for historical reasons, simply is overly forgiving in this regard. To deal with the former, more careful selection of operands is all it takes. With how the disassembler presently works, what you want is that the nominal ModR/M byte disassembles as a single-byte opcode. That's very easy to achieve: Opcodes 40-5f (50-5f for 64-bit) are all single-byte, i.e. you won't need much more that ModR/M.mod = 1, i.e. the Disp8 encoding form with a displacement that then also disassembles as a single-byte opcode. Alternatively (and perhaps even better) you can arrange for ModR/M bytes of 69, 6a, 6b, or 70-7f, with a suitable displacement byte (any will do afaict for 6a and 70-7f, while 69 and 6b would require the top two bits to be set). > --- /dev/null > +++ b/gas/testsuite/gas/i386/sha512-inval.l > @@ -0,0 +1,4 @@ > +.* Assembler messages: > +.*:6: Error: operand size mismatch for `vsha512msg1' > +.*:7: Error: operand size mismatch for `vsha512msg2' > +.*:8: Error: operand size mismatch for `vsha512rnds2' Just as a remark, no action expected from your side: This of course isn't the correct error message to be emitted here. It should be "type", not "size". You _may_ want to replace "size" by ".*" to allow for a future assembler adjustment without the need to touch this testcase again. > --- /dev/null > +++ b/gas/testsuite/gas/i386/sha512.d > @@ -0,0 +1,16 @@ > +#as: What purpose does this line (present in several of the tests) have? > --- /dev/null > +++ b/gas/testsuite/gas/i386/sha512.s > @@ -0,0 +1,13 @@ > +# Check 32bit SHA512 instructions > + > + .allow_index_reg This doesn't look to be needed either. > + .text > +_start: > + vsha512msg1 %xmm5, %ymm6 #SHA512 > + vsha512msg2 %ymm5, %ymm6 #SHA512 > + vsha512rnds2 %xmm4, %ymm5, %ymm6 #SHA512 > + > +.intel_syntax noprefix See remark above about indentation of directives. > --- /dev/null > +++ b/gas/testsuite/gas/i386/x86-64-sha512.s > @@ -0,0 +1,13 @@ > +# Check 64bit SHA512 instructions > + > + .allow_index_reg > + .text > +_start: > + vsha512msg1 %xmm5, %ymm6 #SHA512 > + vsha512msg2 %ymm5, %ymm6 #SHA512 > + vsha512rnds2 %xmm4, %ymm5, %ymm6 #SHA512 > + > +.intel_syntax noprefix > + vsha512msg1 ymm6, xmm5 #SHA512 > + vsha512msg2 ymm6, ymm5 #SHA512 > + vsha512rnds2 ymm6, ymm5, xmm4 #SHA512 Maybe worthwhile to use higher register numbers as well, e.g. _start: vsha512msg1 %xmm14, %ymm5 #SHA512 vsha512msg2 %ymm4, %ymm15 #SHA512 vsha512rnds2 %xmm6, %ymm5, %ymm14 #SHA512 .intel_syntax noprefix vsha512msg1 ymm14, xmm5 #SHA512 vsha512msg2 ymm6, ymm15 #SHA512 vsha512rnds2 ymm6, ymm5, xmm14 #SHA512 ? Jan