From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80077.outbound.protection.outlook.com [40.107.8.77]) by sourceware.org (Postfix) with ESMTPS id 32D82385695C for ; Tue, 25 Oct 2022 07:30:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 32D82385695C 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=Nq8Xl3NJxzg6kX3yusxlwrfiMOi1p5C/+a03zvavkNOmOViVS5JXkG1SrDL3w0fq2XzboPMviOPC/g+pvbXauGG5qYEtzjJMpFJWKmmOqOTWYwRWkTfStFs0dpEAJQbR007p8Nn6xH9h948+NR7r2BCqLwTutK/5ZpwXDEDrTruPSS8l4UFOcrJryukNvamubN/A38PsdUA3fSbV2ebWS7C+3un/skYiytO9FsSulBF9NeIbbGYOYHEVbXjsVBDNNMPFKk9Wcq8jo+LnDN15M3KPCTcGiwVzT0opcbCsfFHi+Re2cLMAf5eqXf7BA8TM1aLqyq5as1bDzkr2ZAlqGw== 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=xXZKpcHj3umbTyMscZjeCv/MUEdS8VGmy+2/UICeuAY=; b=LQ045r/nga72CG4KQz1k6zS0VpF1t+4qb2nXEIc+FxvliURW0TbrN9LLNvePhH50nhKs2oaEREpGBhEMislaBU57/OE79Mae8fd+gketKS4wfTIruR3KfOADVNBV2DkM5NtVFL/mPUMB6a+xMs7zQMLe2CydMhICUTuNMCXYde8dIIYdPTP1cos71v/CuwwmMmQvYFjSLfK/6iicx0k07gF/QVSYA3RsvL+2Z8o4mD4A7HWTJN1sbI7jn5hI3SwCyQSCLyZLZFDP6P+CuxwHXgHrOlS/csAIN+AJx0KQkRCoH0qeCTg7jwIzCM5/AfQcGWCkSj/iBgbmHhXqdEnIpg== 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=xXZKpcHj3umbTyMscZjeCv/MUEdS8VGmy+2/UICeuAY=; b=e2P86r/UeAxeT+aHziO3Ju7FapuhsqacdtBQwGKK154mUesmGdEHJkDK6hnIf71qyuoySxP4+TFQM1Y3eoUMO7k1OGmhOcTk/SRTqIp1pIIaMmfApt3jVSf36aVbbSBLYOsKLvJDLeIHyu381+PO9Q3EtwWtf/oacrLJDCu5gOx54WgOw5XMfTQaQzcZxqL9HdcWkUSo06yBhL+QpFLTlr3W51f45BeOWkrQCpZgx6OhtLz16vKZH/m4DcGxStweLvPMQ18NrVoyDjeFyDOPWXmtwscG20EialAbz+3z3iZAb8bvn9GH47WrDBwdlzOitpmNG8/snAgK9xn9SjoGxA== 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 DBBPR04MB7946.eurprd04.prod.outlook.com (2603:10a6:10:1ec::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Tue, 25 Oct 2022 07:30:29 +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.5746.021; Tue, 25 Oct 2022 07:30:27 +0000 Message-ID: <6b28de5d-0d15-f31b-8336-164a7e5d1347@suse.com> Date: Tue, 25 Oct 2022 09:30:26 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: Re: [PATCH v5 2/8] x86: introduce Pass2 insn attribute Content-Language: en-US To: Binutils References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0002.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBBPR04MB7946:EE_ X-MS-Office365-Filtering-Correlation-Id: 242addd6-5cf5-44b0-c4d5-08dab65ac985 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zfmQ3dlwFFT6nTdMot4plPNFYxQYa+QPkYfcsvRAldCTyvlleK/xV/7o7rmultPin9UmpDXAWpTpZRhs/QBvcIG/XwHAyV7uTgyzi2aGsjLTddx0nAxIiAT6+Z4XyVOAvb2N9/HvNftKXLZg9a0oST0QWm4ZjULjJkwOhuF+ptNjn7dfvl7y+M2xzVMPnR9Jw/psKxV5geh+e055+7ocqlPp/JR+mViFPIjPxiBFi5kdKgBOVSvT3gkqE3VoBknUAeY/YLOP2nnjF7B9rXcScWTBx1hfOLlmW/LcjY7nfK+GX1HSltEvp3bJRJvd3oQsivyz+PPwhGgSJaAsM7yxtnCTxozok2t8lmi/7vnVqbdf2MA2T8rYEVhAB2LwV0VYEbUPgsHoS6M1Eq0C3bOBLsZiRve870Iz9dRo1dTuXFDVVu+6w3iHs87oqeJ6AXTaEG452b9QRkIGmG5Ljpr9DunjJRRB0kE2Sz5LlvFY1Zdj9kqar+HWBDucosZBDgbbvqM8W4EjdusxvRFOj7fV/S3KF0RYFpOPqABdB2tLG51XywSwoaVrHhMa04dhKCLkZ0WnOxLQx6qTWelam7uQtYWYbT7aD98063xqTRFFmBP+SfYLoWU/QHRfLElL7o2Gqk76N9J/BBXlvbkyw+7l1UpoHXXDk1z/wSz2jIpVt2uTJ3wuS7LvDVZ4F484kgbe0bjev6BnXRX70hTh1YhpURUn48F8+dYQDws/TCzdwn172EKeueWrR6rVo44jwjNCPQwb618JJNO075MuIPS+puS9CP8ij2NhvSSL3PDH/Cs= 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)(39860400002)(376002)(136003)(366004)(396003)(346002)(451199015)(8936002)(186003)(5660300002)(2906002)(6512007)(26005)(2616005)(41300700001)(86362001)(38100700002)(83380400001)(31696002)(36756003)(66946007)(316002)(6916009)(6506007)(6486002)(478600001)(53546011)(31686004)(8676002)(66476007)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VTdzV0FzRUp6R3JNcGR0NVhIOE9zWG5nWko0WUFKNXpDYUZiR0dTQytWd2tW?= =?utf-8?B?OEFzK3JhV2NHQkhnelVGRmQzZGpVUHlqM2YzVGl2Z2s3Mnc5ZWZYejY3NEhz?= =?utf-8?B?azhDaTRiY1U2UkdaQVM5RlBtVDJ5OUN5bmhDaFkzV21udW1CQUR2VlUyNTlp?= =?utf-8?B?T1Ztc2tvYVNmeWRJbGM3SkhJRXRMMVJMK0JxV2FxSCtjSStXL1BBTXEvR1ln?= =?utf-8?B?OTZpOHNtQkI5QTYvWWdLUGdna3MrZzVYcE9JVVVIZjF4V3k2QVBTd1dRZTFu?= =?utf-8?B?dVpQV3FmZER2Nlo0KzdIekVwZUJkWHBUaVFoUzJrMHh6SjNFR3RRNlVlMmxQ?= =?utf-8?B?T1o3OFVSYjRYOVJtYVR6eWxVZTl0R1hTQkx0RTgvcTFaSDNJWERtS0JLRmJu?= =?utf-8?B?WkxuN1JHQ1JYSUV6dXQwYWhmbVhhUmhnSWx3ZTVMOW8yd3dzVEF6MGlNbHNQ?= =?utf-8?B?NzlmM2hIY01tT3puOXZGSDRIRmt6MW5GTzgwS1N4b0EzYXlmYTgwRWFXSXJN?= =?utf-8?B?MHYyRmVSNldQV1c0R0g3eEhKcDJRNlJORnl0cmZjOExaYXVOcDQ5dDFiMkZK?= =?utf-8?B?RzhhbFJ2QUJTTnJ4TFRKNE5ES3JLeWZpL0pNRXl3WWR0UVVPMW9Lc2c5ZHNt?= =?utf-8?B?SVIydUtOc0tWYVk1Wmk1bFJhOWlJMm9FdXpCSE1pVFNsV1k4dllpWlJHK3VR?= =?utf-8?B?M21WeDR5Q3phVkNycXBJSzhCUE1wMVJvTENkamRYMzdTQWdnbU84dU11bDND?= =?utf-8?B?aFRaaysrWncvbWhPdjAyMiswUk5KejNTcWlqZW9OMVJKZ3k3cHpzYjlxbHNx?= =?utf-8?B?bXdhWUdTK3U5RHJLNnV5THg5TVFVb2k4QmN2MDhzQ2laSFBhL284bm1POWM4?= =?utf-8?B?c2QzdUtZc2RKU0FiZmJaQmozNm5EcHk2bXJCYWhUaEJrbHVBL1RjMDZYZlVV?= =?utf-8?B?Nkthamd5bmtzUVJ5eGpseVpGVklESkZYQ2g0elJpSTNTd1B4MDZ1VWc4Z3U5?= =?utf-8?B?d1M2VlBlQ1JTbFpITVRBSjdsci9LeW5Nd1gxRmkwYlp2eU5HbW9BVGFqV1Ez?= =?utf-8?B?bTRuSEhGYi9VMVJ1VzRMNFJ5RTRIQXM0YWI3UFR4L3hNSkRSTTlIQzk2VzBt?= =?utf-8?B?T3FVMUtSM1pBNmxpSlh5NXFOSzVLNGZTZERKM1JPZ05xSjhSZTk0T0NMUmNs?= =?utf-8?B?N1JZZ1FwY2xWZ2svTmZnVUhFTjlUanNtbWhhZm9XZmlObE53cVRVd1NFZ1l2?= =?utf-8?B?dXlKVGsvaW92bGxhcDI5TjlJTjBkV2tGWExqMWtFN0hidVRibWVsNVhkWnRT?= =?utf-8?B?NVQ0M04rbUhKNU9nb2plcmNOV2h5Wm5IalBGdVNSVnBjSGZGdk9VNUZkTWZT?= =?utf-8?B?Q0I1MmR2bFNNdVlXdGMxS2pESnFEYVoyODBkTUhPUENFUlZlMkE0L0NlOEVQ?= =?utf-8?B?aWxWZ0h1dVYxeDBsMDRiOTlJLzNkYng1dEF5ZkhlN25XOWVnZnBPNHBDeWhD?= =?utf-8?B?N3pKTkJGcHV5Y0YvKzBLOHBRSHBpSGpvN1hKQ0dab1VmcmhaU2pDMS9yYVhz?= =?utf-8?B?UGpEOUg5QmoxRXRucWM5R3Zvd3Y4Rm9YYkg3dTBQTjVTVmU2REpmSUxUbTl0?= =?utf-8?B?U2VYRWV2NXl0d2pmLzJqcXJaMGx6OHY4THcvYUtQK2N6OGliUmx1ZHlLNmJT?= =?utf-8?B?bDQxNnRlc1FENWs5VTJrSmk4VU1rSUsrbnJxNTNRb2NKWXNXdVo2U3h0MG9D?= =?utf-8?B?bFFCMTkzdDFSb09JNkl3bGJSVnVKV2RreWNxVXFFdUxVWGllRnB1UTRYdWFs?= =?utf-8?B?UFU3SGt2dkpqYUV1SWFSWWFIWGhpUldVaDRINThBVFZOQ0Jic0RIaWJ4QXRF?= =?utf-8?B?c2k3QkVIQjNITG0xUkRDdzdoVEpNT09Hei9zNTFmWUtWTFVLdVRqZEovU1da?= =?utf-8?B?YjBMeFdyd3pkVDBxeGNRYXh1aEhSLzlIbUhUNlNIVGJ2WlB0UFA0UDZuZ3R2?= =?utf-8?B?ZVh3V0VMaE5ZZTNndjlhOUtKdWdhNFB2ek5jamZWRTNyRnBNLzJidGtyNmlM?= =?utf-8?B?T1VoYjIzTUdEdUtUT0l5RDlFL25OVEtvTEtBTWR1dDR1NVdWQ2t3UTkvRVRS?= =?utf-8?Q?et3I8pN6eq1LZ4Nghdu88Tr6p?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 242addd6-5cf5-44b0-c4d5-08dab65ac985 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2022 07:30:27.1895 (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: OfkK8SAwb94KLvCHvE6LrJLBNRI61t/Qg2jKu0RRpUJZOVruKZM5UGffdkVoitMNcQhy0VMlL/JP1xYYK6TUpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7946 X-Spam-Status: No, score=-3029.6 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: I'm sorry, I've typo-ed the title of the original submission - this is of course patch 2/8 (reflected in the subject here). Jan On 25.10.2022 09:25, Jan Beulich via Binutils wrote: > Subsequently we will want to mark templates for mnemonics which, due to > their last character also possibly being a suffix, are "shadowing" other > templates (and hence may require a second parsing pass). Introduce this > attribute in a standalone patch, largely to ease looking at the actual > later change. To simplify logic the later change is going to look for > the new attribute only on the first template of a group. Make i386-gen > warn about misplaced Pass2 (redundant ones are okay). > > While there convert "active_isstring" to bool, matching the new static > variable. > --- > As to redundant attributes: An open question is whether - to avoid > surprises when e.g. templates are re-ordered - it wouldn't be desirable > to add Pass2 on all templates of a group. > --- > v3: New. > > --- a/opcodes/i386-gen.c > +++ b/opcodes/i386-gen.c > @@ -18,6 +18,7 @@ > MA 02110-1301, USA. */ > > #include "sysdep.h" > +#include > #include > #include > #include "getopt.h" > @@ -702,6 +703,7 @@ static bitfield opcode_modifiers[] = > BITFIELD (FWait), > BITFIELD (IsString), > BITFIELD (RegMem), > + BITFIELD (Pass2), > BITFIELD (BNDPrefixOk), > BITFIELD (RegKludge), > BITFIELD (Implicit1stXmm0), > @@ -800,7 +802,7 @@ static bitfield operand_types[] = > > static const char *filename; > static i386_cpu_flags active_cpu_flags; > -static int active_isstring; > +static bool active_isstring, active_pass2; > > struct template_arg { > const struct template_arg *next; > @@ -1168,7 +1170,8 @@ process_i386_opcode_modifier (FILE *tabl > char *str, *next, *last; > bitfield modifiers [ARRAY_SIZE (opcode_modifiers)]; > > - active_isstring = 0; > + active_isstring = false; > + active_pass2 = false; > > /* Copy the default opcode modifier. */ > memcpy (modifiers, opcode_modifiers, sizeof (modifiers)); > @@ -1191,8 +1194,11 @@ process_i386_opcode_modifier (FILE *tabl > > set_bitfield (str, modifiers, val, ARRAY_SIZE (modifiers), > lineno); > + > if (strcasecmp(str, "IsString") == 0) > - active_isstring = 1; > + active_isstring = true; > + if (strcasecmp(str, "Pass2") == 0) > + active_pass2 = true; > > if (strcasecmp(str, "W") == 0) > have_w = 1; > @@ -1867,6 +1873,7 @@ process_i386_opcodes (FILE *table) > for (j = 0; j < i; j++) > { > struct opcode_hash_entry *next; > + bool first_pass2 = false; > > for (next = opcode_array[j]; next; next = next->next) > { > @@ -1875,6 +1882,14 @@ process_i386_opcodes (FILE *table) > lineno = next->lineno; > last = str + strlen (str); > output_i386_opcode (table, name, str, last, lineno); > + > + if (next == opcode_array[j]) > + first_pass2 = active_pass2; > + else if (!first_pass2 && active_pass2) > + fprintf (stderr, > + "Warning: %s:%d: %s: " > + "'Pass2' is recognized only on the first template in a group\n", > + filename, lineno, name); > } > } > > --- a/opcodes/i386-opc.h > +++ b/opcodes/i386-opc.h > @@ -504,6 +504,9 @@ enum > Normally, it will be encoded in the reg field. We add a RegMem > flag to indicate that it should be encoded in the regmem field. */ > RegMem, > + /* The (unsuffixed) mnemonic represents itself the suffixed form of another > + mnemonic, potentially requiring a second parsing pass. */ > + Pass2, > /* quick test if branch instruction is MPX supported */ > BNDPrefixOk, > /* fake an extra reg operand for clr, imul and special register > @@ -730,6 +733,7 @@ typedef struct i386_opcode_modifier > unsigned int fwait:1; > unsigned int isstring:2; > unsigned int regmem:1; > + unsigned int pass2:1; > unsigned int bndprefixok:1; > unsigned int regkludge:1; > unsigned int implicit1stxmm0:1; >