From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70051.outbound.protection.outlook.com [40.107.7.51]) by sourceware.org (Postfix) with ESMTPS id A2339385C32C for ; Mon, 31 Oct 2022 11:40:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A2339385C32C 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=P7ZnDwtT+uf9PVsCJDoLr/6cK72C50N9iHvrKcjtuhWYiTmgkwy0vwspJAa4nH++eAXY6EWuIMzWX6LbbM7eLjuLokDM87Okw1EHYLUDFRVSpdynWOu6Beg+fmuHLyp7/FcfXzIIQkxnUrQ6SkylRoPJrTkqXatxadqry3T33cfm7NP9WB8kbxwFha2UT1Kc1TyIMdxKPiop9/iw6yB8aICZSc0/q23lsW5KZLns869Z55QNv8JJDv5QCCM/LP2fJhXtlvcO23CfIJ6m3CSqhhSBmV28Gjtwjj9YJVm9n0+/SSDP6XcWxND1gTHGNAKGr/O/jWAW64tTZ8tRK60FWA== 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=lVTDvTIEC87OpXeHMyNgkxf2xA5YiFaHD8pIEx+Xe/8=; b=Bg6h7GkUSnaGbkWwVMLJVPpcCR9OCgdu7N4jR4NztEdaH4Q+3xtRZw1z6ntSsu09JrM+rQhzjVbpT68rv46a5HIkdc75jhp+1dzbI0K9fZFsYpb3kUNkNf11p53qpEQxg1TOgZ9TeXdDO04OlEeLfBLVL81mmhUUdVwFL0A4rpvFwtde8tgKmQp5u4M/rtf22/xrHG+jStJRKu4fvW6iKXpnZom3a0k/9HXA/zpvWOpXSYMQOqIndY2UEe6P5B2ma45DqJfHgmRXFAuMpBxWSUe36FR1Ya7PpPn3GIl6kiv5azrli3os4hA6tValmavLbZgfdXM9hYmLLarLo45E2w== 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=lVTDvTIEC87OpXeHMyNgkxf2xA5YiFaHD8pIEx+Xe/8=; b=c+f7UaislYTUaJEKr727OyZSClovNMVRZPlpfK1SkFzJBUe7v4x7tOru4Qus5HkL/ppKfgBCnT9831z73VwdUsM0/yT8d0gAoRmgPGkqbmUK2cNMbM1OYbt5VnAlV3vVzNz8Lh3Edv2M3RU3h1qkOg76rVif60qYBPCbK6ry6rR+UGSSyiveulEYTZZZPWtW0ogajc5+eYKoonVAE6X44hg60XEMfOeW+v3lTohv0SXLcw0/QLbltVmLM4GnKX/GBed5Grb8nWj5yI1psDzN+IbS26TNm7aWT162fnGZXkwFEX/qdeUNhBxU9MF6CtPEub5nz8daFuNucpuQsf0qqg== 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 AS8PR04MB9191.eurprd04.prod.outlook.com (2603:10a6:20b:44e::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Mon, 31 Oct 2022 11:40:13 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5769.019; Mon, 31 Oct 2022 11:40:13 +0000 Message-ID: Date: Mon, 31 Oct 2022 12:40:11 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH v5 3/8] x86: re-work insn/suffix recognition Content-Language: en-US To: "H.J. Lu" Cc: Binutils References: <7250dab9-e218-e6dd-4c74-23da9f611ab4@suse.com> From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM5PR0402CA0018.eurprd04.prod.outlook.com (2603:10a6:203:90::28) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB9191:EE_ X-MS-Office365-Filtering-Correlation-Id: b154e298-8d16-4419-5f8d-08dabb34ac90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PkiyI0agt0NzI6sbljLJhlNt4JuAoXFBDT5VtcfWnrEvchN7BJVp978oUBcjFw1rmGMlMhZW6O3OU9De1ViUL9KxKZq9suu9IXFLQFv/F+A08kgyBg6R4LgDfFPufursieuP8AhHNsp6eYB8u1XJbrqYH4258l1R7twTGDU6glQ79mGxEZZoRxaNmnkgVbS9Jimjx2+VVszTQMU5XYiu1rlGQIPAJqxh+mu6yK4wqSVGSJWLvIIoVpml8kYD8b9kSxmGoNz/UMLuATI0IwbeYgd9A4MHU2q+y6zlDw8NV/LmKRFrvHl+MosLw3h7ZRKGt6Jt7SZpDef7B0aWV1KkotyCSfyCYaNWSZd8heBmeTYdOJVchM9tehLjOeiImc0G2aleZOCErXIB2u/T7QI99bxuh7UxC1V6BFJoQ47ihgs8SrUmxhznfu2v29xbVolkgB4g6gJ2YOeScawQedhRsHyC0qY6LPBLGZ5oRmOVz6uPtKQGpAB8aUq8MSGnPCYvVdhr5N7gr5mai7ViEnmM9OKizhqnPWCtDcHPv76RPVUR9pSaVPzrAvYvQ0WT7uJ3h4ugPoLKADZubonM5xcCUfSxpiyEb5hle8hYpBZRq89hac/ef8tcO2tg/A47AUethY1geUtYV6Ce7POADsi7n79txjNYHpu3M2eEcfIgpgWgaBtyVwWzAWxLfIouQ3Wv/pA49rxUEj+nIbHiub8sOxtaiB2IF5/xqzh6R5mJczhixCrPTB0025N69PefPoGQNAfBU71oYMGhtoHVmeOi9n4vewpbgc8EW9GbuwBkUTg= 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)(396003)(346002)(39860400002)(376002)(136003)(366004)(451199015)(38100700002)(36756003)(31696002)(86362001)(2906002)(6486002)(5660300002)(4326008)(66476007)(66946007)(41300700001)(8936002)(66556008)(8676002)(316002)(478600001)(6916009)(53546011)(186003)(6506007)(6512007)(26005)(2616005)(83380400001)(66899015)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MDZYc1NuMTdITXFrbHAvUVZmVHNVRUtWelpVVko5eW9wWXdRNFFJQTFJbzI0?= =?utf-8?B?aS9RUjA3SHRsWnNKQVBTY0RRT3lDSFB4enVRYW0rejB6ZVl6ZEx4Ty92VnRO?= =?utf-8?B?UTROcFl5OXBNaDU1dWVjMmFVTjV6SzdpVnZKejRJVjUzQys4UnV0aHp3TlQ2?= =?utf-8?B?RzNWMTN1aHNrTjlpakUzQjJ1ejQ2Z3dMZG0vY2JPWVA5djBpZFNZRElwdU0v?= =?utf-8?B?RVRsRVFJellvY1lpWUFHWGVBNm1UQzg2NGZRQVFJMWlHN09Jb0F1Z3ZMVU5J?= =?utf-8?B?RkE2dHcwVUgxd2QvZU84UFNObXNiNFdwcDZ2MlBMZWVKTUFIOGpQVVE4L1dC?= =?utf-8?B?YWVMNEdHRjdtcUhaWC8vWk4wbURETlZtQXM5aC9teVhkVEp6MkhycUFFL0lE?= =?utf-8?B?YWJCdmNvckozWmVxTTRiRVZNRnZaWUM3SkFCakk4YUwrdmdYTVdiNHM3THVG?= =?utf-8?B?b1greDYwMGZub0xEOEFQdjJaQjd5RUx0K01TVEV5UERZQktEUE9nR1c3ODk3?= =?utf-8?B?ejVKbFVnNTVMK1dDZys1Z2hmS0hkUE13TE5DM01Fbkd4b0pjajNoeDQ4U0hU?= =?utf-8?B?cG5JSk5WaTlsalRVRy8wbkhTZmFUQVQ1VEs5VjdyQWdRSk82ZjBpYUNkNTNV?= =?utf-8?B?Z0M1RzNiSzJ5djlQRWpua3RtN0dsRXhFZXMwTHdua2FmV2ZkSldFQzQ4UjFy?= =?utf-8?B?b3R4dzR0RW4vTG43YWIxVlNqR2QvM0k2V1owKytqZ1hGeVVOUi93UDhubjM4?= =?utf-8?B?VW1IY3hPY2pjdngyYUxrY0dtY0dKQzNFcDBNQnRBODRBYU5UQmJVa3plQ3Jw?= =?utf-8?B?TU5aMkplWVppT2lQVjVvVHlhTFpxS3E0TWJndDRvSXFOL1A5dVBjRTlGejZN?= =?utf-8?B?VzRxcDdIMEt2SUc2U0wwVnFlVk43Njh1RGpVYllsMCtQVi9SekJ4SzdFenlH?= =?utf-8?B?b1pHNW5oMDlCT0wxbldldlFTYjFyNlE5NVdBQ0ZLWktaNXV5a2xVbVl2dGhP?= =?utf-8?B?OWZ2bHhOSmZsb3RNdGk2SnQzcERZbnhLeUlRcUJqbG5ITTRGWGRzazY5WFZm?= =?utf-8?B?T1hYWnRvVkxJelhUYmRyNVNhUllIWjRpbWNNWTJPVGxsT3BUS0FHSit1MUxn?= =?utf-8?B?YjZJSUNsdmJNU0JkTGUzYm91cUVGT1RjbkdsMTFRaE5ZMFRXSDJadTE0b2FG?= =?utf-8?B?M2R2dWNuM0JkMmVoellKVGhXNENqZDg3Z2dvZFVPNWNkNWJpWmxTdy9DWGtR?= =?utf-8?B?WW5GNXUyb3k5UCtWMno3M0t1UDI2L0dzSFZ2dzVEcHdOQWN5Ynhzb2pGSnpN?= =?utf-8?B?dzRNOEd2NkV5WEJwSXhna1VScnB4RUo4bUVlektKNjFwU1J5aGZQc1NMZkhD?= =?utf-8?B?SkUrWVdJZ1AxZ1dLOEdWRWZTb0ZhMHpraVpXWHV2TFhmMk1PSldSSzM2eElu?= =?utf-8?B?MVVXelJEOWRKa1ZadWJUaWkvQ2l1c3VjdmljWVBJVTFXdGcwNHFJalkvdnc4?= =?utf-8?B?NldqaEI2S3cydTN2aUYzcG5KY09udWRzZ0JkZnpNMmxhc2laWDNjTXhVMXdr?= =?utf-8?B?UDh2Uk9hRjZxclozc0pmK29Yak12ajFic0RibTduN0FEenBBMHNJdTNBS255?= =?utf-8?B?bi9MOGFDZ1YvMWxNQ3ZYbU9WYTBDTUNleElWQlpLdTRwMk0yUHJjbThVSUU1?= =?utf-8?B?cU1VQk1VY0VZaGJrWUhTYnBUOTdWWTJLdjM4NW9sOUFrY3Z1U2pSZmFiM2l4?= =?utf-8?B?MG4xNmFPdDJTU0d1L1ZVY3RTbUpDMzdTYytmUXFueGU1UHVBUlNNUnBJK2Qx?= =?utf-8?B?R0FCS3lteUJKc0J0U2RuLzBheFc2REhaNmJjdUVRVmRPTUthdWNWZEI5TGEv?= =?utf-8?B?VEFVN1FobEF3R1hkK1VIbDJINW5LQWdaemY0cEc1T3BCK0oxKzJzdHM4a1d6?= =?utf-8?B?bEhjZmk3bnlFNlk5dnZpbmwrNnpqcFV1V2VWakxxTU9LbVpJSGpJQy85U29t?= =?utf-8?B?cnU3NktWQVVIWkR4TmNTYUk5V0FvdUtkZW9GN2V6MlUzMzZPOHI0YUFxc3pT?= =?utf-8?B?Sm1rZjE0bnhVbmZXbnpRa2tLUkxsdkVHNTZtT3pkVTJoa0x3azZQeWdTZUNR?= =?utf-8?Q?OoBxs6dKs8vzfEWFmp+O9obHW?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b154e298-8d16-4419-5f8d-08dabb34ac90 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 11:40:13.5588 (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: +ICzBuG77wrQH8atAcAK0ySN/aH1GGybsGjyt3qZNstw8N2oL8HkinLDZVjStVNlMiOgWxXQa3qIm2r2jkb+dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB9191 X-Spam-Status: No, score=-3029.5 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 28.10.2022 18:12, H.J. Lu wrote: > On Fri, Oct 28, 2022 at 2:00 AM Jan Beulich wrote: >> >> On 27.10.2022 19:21, H.J. Lu wrote: >>> On Tue, Oct 25, 2022 at 12:26 AM Jan Beulich wrote: >>>> @@ -989,13 +976,13 @@ emms, 0xf77, None, CpuMMX, No_bSuf|No_wS >>>> // copying between Reg64/Mem64 and RegXMM/RegMMX, as is mandated by Intel's >>>> // spec). AMD's spec, having been in existence for much longer, failed to >>>> // recognize that and specified movd for 32- and 64-bit operations. >>>> -movd, 0x666e, None, CpuAVX, D|Modrm|Vex128|Space0F|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Unspecified|BaseIndex, RegXMM } >>>> +movd, 0x666e, None, CpuAVX, D|Modrm|Vex128|Space0F|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX|Pass2, { Reg32|Unspecified|BaseIndex, RegXMM } >>>> movd, 0x666e, None, CpuAVX|Cpu64, D|Modrm|Vex=1|Space0F|VexW1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { Reg64|BaseIndex, RegXMM } >>>> movd, 0x660f6e, None, CpuSSE2, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegXMM } >>>> movd, 0x660f6e, None, CpuSSE2|Cpu64, D|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|BaseIndex, RegXMM } >>>> movd, 0xf6e, None, CpuMMX, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Unspecified|BaseIndex, RegMMX } >>>> movd, 0xf6e, None, CpuMMX|Cpu64, D|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|BaseIndex, RegMMX } >>>> -movq, 0xf37e, None, CpuAVX, Load|Modrm|Vex=1|Space0F|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> +movq, 0xf37e, None, CpuAVX, Load|Modrm|Vex=1|Space0F|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX|Pass2, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> movq, 0x66d6, None, CpuAVX, Modrm|Vex=1|Space0F|VexWIG|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|RegXMM } >>>> movq, 0x666e, None, CpuAVX|Cpu64, D|Modrm|Vex=1|Space0F|VexW1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { Reg64|Unspecified|BaseIndex, RegXMM } >>>> movq, 0xf30f7e, None, CpuSSE2, Load|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|Qword|BaseIndex|RegXMM, RegXMM } >>>> @@ -1159,7 +1146,7 @@ andpd, 0x660f54, None, , >>>> cmppd, 0x660fc2, , , Modrm||||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } >>>> cmpsd, 0xf20fc2, , , Modrm||||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } >>>> cmppd, 0x660fc2, None, , Modrm|||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } >>>> -cmpsd, 0xf20fc2, None, , Modrm|||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> +cmpsd, 0xf20fc2, None, , Modrm|||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Pass2, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> comisd, 0x660f2f, None, , Modrm||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> cvtpi2pd, 0x660f2a, None, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMMX, RegXMM } >>>> cvtpi2pd, 0xf3e6, None, CpuAVX, Modrm|Vex|Space0F|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } >>>> @@ -1184,7 +1171,7 @@ movlpd, 0x6613, None, CpuAVX, Modrm|Vex| >>>> movlpd, 0x660f12, None, CpuSSE2, D|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM } >>>> movmskpd, 0x660f50, None, , Modrm||IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 } >>>> movntpd, 0x660f2b, None, , Modrm||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } >>>> -movsd, 0xf210, None, CpuAVX, D|Modrm|VexLIG|Space0F|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } >>>> +movsd, 0xf210, None, CpuAVX, D|Modrm|VexLIG|Space0F|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX|Pass2, { Qword|Unspecified|BaseIndex, RegXMM } >>>> movsd, 0xf210, None, CpuAVX, D|Modrm|Vex=3|Space0F|VexVVVV=1|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM } >>>> movsd, 0xf20f10, None, CpuSSE2, D|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } >>>> movupd, 0x660f10, None, , D|Modrm||No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } >>>> >>> >>> All these instructions with Pass2 have a vector register operand. Can you >>> use it instead? >> >> I probably could, but that would go against your request of limiting as >> much as possible the allocation of a copy of the input line: Far more >> insns would then also undergo this setup for a possible 2nd parsing pass. >> It may be possible to limit the set some by taking into account further >> attributes (like, leaving aside move-with-sign-extend which you object >> to being corrected, SSE2AVX), but the collection of those checks would >> likely be clumsy and harder to maintain than the new attribute. For >> example the consistency check in i386-gen would then not be possible >> anymore, and hence the whole thing would become _silently_ dependent on >> the ordering of templates in the file. > > Order dependency is the part of the implementation. > >> Furthermore keying this condition to insn attributes would be less >> future proof. While it may not be very likely for new colliding >> mnemonics to appear, if one would which then doesn't fit the chosen >> pattern, the tweaking of the conditional would be more fragile than >> the mere adding of Pass2 in the appropriate template. (Even if you >> continue to object to it, simply consider the last patch of this series >> an example.) >> > > I like to avoid the second pass for many common instructions. > The current assembler may not be ideal. But it works. So am I understanding correctly that you'd like me to drop Pass2 again, accepting that a few too many insns would have the input buffer cloned then? Jan