From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80048.outbound.protection.outlook.com [40.107.8.48]) by sourceware.org (Postfix) with ESMTPS id 33BC23860744 for ; Fri, 18 Nov 2022 09:14:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 33BC23860744 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=jWCzaUcpV8ygf4HRvo67AmCDgKeMLkiOz6XVA8LP9enDFzy61synNF1l18xepN+njuR6eGZ6hUcoaAB4RTtP9nGi2DCaMZ7wVHZkfP1kKD8eqyOyzxTNDY5/chuegtY/BT6bx+1kBdg5YhKejzLJyUhllQGHlXNizaKCMKYRwm3VUd8twfIoudk4RCxFFhDu4tflKshcTzvOlfY+bxd6WZPX3l47B2fhagBn2Hi7jm6TqcHNF+nrmHv3o/jhJqf9JG3vxfUj45RsRugxu4tiU1aRX09hEw0tWG1oiwIkhKx5cciPuIg4hTUwQEJnT+ha9PYhxdA42fj4B9WPRH9ySw== 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=o9B8ohx8JZ1kX4Oa16fVe5cglMOstwygd5/FedkPTS8=; b=ShJq11FZyVoL3fSVHMKOJyKczGhiwe3GirWc2KKBzSTM4FM0pGephsmM4Kc2O5gLs/2t4TuORtkxNuBUtjSha9J1PbHXqrAQYfXR1DfyicC0Pr8sGBeOKgUxENM2IGHmrFFkwN/X5EuXm+pwZFc63JsCkAhqUfOGHs4AlvObDDGg/n3Uy+GBtQ3pwCst6Q7zxVKx8Xmc0Bc87rZ4nqf79JN3PsEyp6CNw0JNKV04rB01FEDpvUg+pJPMc3W4aQqqnlupn6u/mgCz5K0/xS5oDRPq3cfKc0Nue9t5kQ2zHYILOmfarhPR06y6Ems4nJUyj7r6f4UbDxIv5AUfbgMNzA== 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=o9B8ohx8JZ1kX4Oa16fVe5cglMOstwygd5/FedkPTS8=; b=NsuL/F+9uL3X+D6OMhm2sOPLKUcnqxC4vVQAjh1pShVngFsMt39KfXCQrH4D4M7ceBpL7lBUvxB1IXuVudVIg3YHta28Lp8LBRBYsJRyE/fC2HdDWfNFpXu6FwgXEAZY2AbHRo1g4RnoqCk+Lnh4nY9cGW7VejNqL43wWqlzHGcdzrWwY1WoXCnr/Af5ArG8v/yFjFdcnJe2wmG8irTfCGnNQObvK5Vcq8pXyBToUeEcv2D8L0mmHhjSPB3b0iD2pY9zAwx6SOi16XObp0xhTjj/crmHqR/1HFY236zou9WpRFWT69+gz8tF7d2nuJNzic/N0m7VFAT7HYUqzYpAqA== 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 AS8PR04MB9094.eurprd04.prod.outlook.com (2603:10a6:20b:445::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Fri, 18 Nov 2022 09:14:06 +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.5813.018; Fri, 18 Nov 2022 09:14:06 +0000 Message-ID: Date: Fri, 18 Nov 2022 10:14:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH v2 4/4] x86: drop sentinel from i386_optab[] Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <7a1ee76a-5b54-32a6-6301-a1741b5c1883@suse.com> From: Jan Beulich In-Reply-To: <7a1ee76a-5b54-32a6-6301-a1741b5c1883@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0149.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:95::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB9094:EE_ X-MS-Office365-Filtering-Correlation-Id: 72a928b4-a2fd-4fc1-c34b-08dac9453e48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LL0ZSqsG1bTJfi0wlxzmN/XsJ7TnurbJPYzYu7a+1PdQ4ujMuf6VXqlKS45p8QVu/S1aE/na6MrxneAnCaKhabwWX3LKs70ouJscy7M+XyqItn1iPY1xP08xhrQtkfxria22YE3qfE8mdDoWA1gQpuRi0B9c36pIJ/tAYVeWT6b0pCBFtTYqtNBlyL8yh2h+jZNCe8mbZ6RbxaNfBRvNXKX4Ah4wCigTIXL2+67wJqsmFBvQW7rZEX7iI368d71rJ9eedV74OxrRg1kFwnJK/HFgGg+fl8lT6lbW1yMfW2aw1Ng+kRe2cWe2pWKYWwwp/ctVjdVMcbnf0upPvYF0rePwuMnF74WIPxOsZebz6kSRkoVDV8jChVqEbe5DTg89BCKNkA7tiQTMgJM+DW0olgGAHsdtA3M/0TAZBAkfIuXuev0fbjAjqIvi57pE6fw0BBSSOOhuxyVhnHw20Pdirz7REb5xxcRVd9qzRk6wi8J6QfxqPMDe9mgpSVMA5r5sZFQchd5UaLyh9C/cmpvyPxxmLhgutzXa74pOw5jK0/fjl4e5aAW6e0grHdjHrAh3y8Murk0Cm8aOIGXfPk2Vn4+OGMY8EhNWmmOmwgTVW68HIAj1+zcg/cor/vAbbVcS0rcGa/sb0l1S3UaiOMlwQZ4WMeN4w9rlKDQOOMjiXjlFyC7YgLmj1CLWJfMa+joJyhhAQPJ5Vjyr3VsEhkNrklPxec9nQss+dwZi3QbbYKU= 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)(136003)(366004)(39860400002)(376002)(346002)(396003)(451199015)(316002)(6916009)(31696002)(6512007)(26005)(8676002)(38100700002)(4326008)(66476007)(86362001)(66556008)(66946007)(83380400001)(2906002)(36756003)(2616005)(41300700001)(5660300002)(186003)(8936002)(31686004)(478600001)(6486002)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NlZua3VJVmJhOUdjMHlSOTZkRm9BcjI1U2RuVWhlaU1weHdsZ1N0OEU4Y1oz?= =?utf-8?B?SitCWVZYbXZ2UHRQdlFMS0doT2M0NkRzNUxiaS9LQnl5M2hiQjVSZVFSOU1N?= =?utf-8?B?UEk1am1tbk5NS3FYTFdyRDd2aW9WRjRRRjhmR2xSQkFERmVTZkowNFRoSXFl?= =?utf-8?B?RWFKL1JqeVB1VjBHdWR6SVNWWTJ4VnBrV2ZqR1VYZjZBZUFnNlRsMnR1ZG40?= =?utf-8?B?cUw5VFFpOUVKOTF0TG5HQXpBT3pLRjI3RFF5YVV3Wk1WU2tJVVlZeVVtL2lG?= =?utf-8?B?S3pNZjBvNUozZ21RMVJrSVpDRWJpem5qdS9RN0pyMUo3blFQUjViUU9JaDV5?= =?utf-8?B?eDl6ZGRmVDRmYlVNZHlpZTY1dklaLzNFNW1LcjMrdUJ1cVEweWptUzdUL3Fy?= =?utf-8?B?QjVCQkxFNFRxYVdBbFlta2t0UmR1YTZ3TzF3ZnJSWmZmUkh2VEYwUGt5Z0Ux?= =?utf-8?B?bjVjUGhUaUZzK3pTVXgveUhWSjY1UDJQQWhuY3pHUnpWenc4QllLMy9SZ0Jt?= =?utf-8?B?UXd5Y2RYNjQzK1BFd1NSRXk0L3pvS0RpZGkxQjFwOVB0cVdqbjhtS1RLSmUy?= =?utf-8?B?eFRKdTFFVTZWbnVHVFNVSjFLamhQWXAxQ0dzeEQ5VHdNWkEwK0ErTlJrWXcx?= =?utf-8?B?SXR4bUx4OGJ5ZTZWeGZ6V0IxVEFFVE5ONXdxQmQvUGk4QUt0dXQrOG02ZFkz?= =?utf-8?B?eWJQbVM5Z1JwaFpxandFdm1INTVSWEplV0RYaml1UmNxamo3WEppMDRnWTZV?= =?utf-8?B?akhRV0VnVTE0MXVVRlNrS0tZVlR6b2NjR3hvZ1RNNHhtWStEMDdxQytHM0Vv?= =?utf-8?B?NjRjQTlBUmZJS2pBTEpWNS9uK2tnQlhoamxjQU1VOUc4WVRoOE5SdUNxMlMz?= =?utf-8?B?Z2l3Wlp3eVdQTkRsUy96U3J1MFdOSUlWanYzcE1oSnEyZ25xbmpLRHVrblJO?= =?utf-8?B?RHd4VkFqRjFwMS90S1Z4Vk5ERVA4NW5mTGlscjFEWUJZMmdoN2MzNTh5UWY5?= =?utf-8?B?N2ZkbUVOMXRVdFdDejZlTEJEaWVJOHZtNi9kS3J2N0pkQlcyK2E1RUwvT1VG?= =?utf-8?B?bUMyR0FGMjNFMkIxSlA5L29jYWpkQnNhOVZ6TUUwb1dIcHkxL2tPWmJNc01S?= =?utf-8?B?YnNVYXFibnJya05oVExUcVdUcVJFZWl4NXVyY1Z5dlJObVEvWGpBMDhldWIz?= =?utf-8?B?KzJ5NFpxTUVlS1VVbG5YRU5qYzdicEVhYkR3STdqdWFXRU9DMVd3RXlFRmVO?= =?utf-8?B?WVpuRDBNSHFTSXhIc3RCZURGR2t1MS9zZTg4c1VPV0NkTTJrczQyTzhOMVho?= =?utf-8?B?VjBPd25BeUJIamk4bHoyalJjc2JZRytHbEkydVVVWEovWStnNkI1aFZwd3g2?= =?utf-8?B?Sy9Xb09WTFhpdlQxeUtnUTJ3cFFEd09KOXN4aTFPSUdCUzNUSGtUc0pzRWJx?= =?utf-8?B?SGpiMklsWWdQS2gvcWExNmNTL29CUlp4Ri9uUXhsRXV0aFZGdnVCTTlsaGxr?= =?utf-8?B?QjJKcUlYdGpjalBvTnRxM0ZMZ1dCVnFNM3BLUUl0MnpiTm5lV2UvZkVGbEpS?= =?utf-8?B?aXZ3NDJLYXJTcy96TnRxRTNTRzdQVGxjUlZCd1QxMWh4TzQ4QjNsYVM3UGVx?= =?utf-8?B?aCt2cCtPdU5WZDVqVC85cmVVZnQ2a2UwRys2SitQVkFGRG1ybXVlTFFVZ3hp?= =?utf-8?B?d1ZQYlRibkEwQ1NFMDJsSHFsR1I4aXE0bGZ6dCtNQWQ5RFZVdlNzdjVHMk0y?= =?utf-8?B?M3l5NnYveFg0QnVKdGxkRTNqWkhzai9DRUFDMGFDU3VXSXVkRkhPcVJkamxm?= =?utf-8?B?dU1KSExhQmNMNnVxSlQvcTlTZW96dk9Pc210UUtCbFpHOFVrRERlSDRRcWFZ?= =?utf-8?B?UGk2YzBxUDhreXhkY2Q1dUJyd0FaTDR1SXlJNkJKNnZReENsaDllUmxoNHAr?= =?utf-8?B?RWxpayszSllhUzF3U3NvZTN0dE91dHNIWTlXR3BXOVJmaWVTNGFnVU5DbnB1?= =?utf-8?B?dDZXdkFsWC9yWVU0K2k2VlBwTlZpeGRpTnU0MFp2ZUwwYW1qTTVJRmhkUnV0?= =?utf-8?B?OU5yZFFUajdlWDJzNEhQRHV4UjJQcGlBTTBEN0V5SFE5UVJaRDE1T25kKzZ0?= =?utf-8?Q?QVClZqEFQw9u92W70gbCWhilm?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72a928b4-a2fd-4fc1-c34b-08dac9453e48 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2022 09:14:06.2322 (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: fHskb09o+niBxrVa8w4L9N8401dbTmc7II/vbSpJTRuUDXDFSydrKs5FQzIZb0H9Ksxr+2LrJCVzcdtf5B/pRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB9094 X-Spam-Status: No, score=-3029.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: Now that the table is local to gas, ARRAY_SIZE() can be used to determine the end of the table. Re-arrange the processing loop in md_begin() accordingly, at the same time folding the two calls to notes_alloc() into just one. --- v2: New. --- We may want to consider having i386-gen also produce a table of type "templates[]", which we could then iterate through without needing to do any allocations (and with fewer overall iterations). --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2981,31 +2981,20 @@ md_begin (void) op_hash = str_htab_create (); { - const insn_template *optab; - templates *core_optab; + const insn_template *optab = i386_optab; + const insn_template *end = optab + ARRAY_SIZE (i386_optab); - /* Setup for loop. */ - optab = i386_optab; - core_optab = notes_alloc (sizeof (*core_optab)); - core_optab->start = optab; - - while (1) + while (optab < end) { - ++optab; - if (optab->name == NULL - || strcmp (optab->name, (optab - 1)->name) != 0) - { - /* different name --> ship out current template list; - add to hash table; & begin anew. */ - core_optab->end = optab; - if (str_hash_insert (op_hash, (optab - 1)->name, core_optab, 0)) - as_fatal (_("duplicate %s"), (optab - 1)->name); + templates *core_optab = notes_alloc (sizeof (*core_optab)); - if (optab->name == NULL) - break; - core_optab = notes_alloc (sizeof (*core_optab)); - core_optab->start = optab; - } + core_optab->start = optab; + while (++optab < end) + if (strcmp (optab->name, optab[-1].name) != 0) + break; + core_optab->end = optab; + if (str_hash_insert (op_hash, optab[-1].name, core_optab, 0)) + as_fatal (_("duplicate %s"), optab[-1].name); } } --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -1916,16 +1916,6 @@ process_i386_opcodes (FILE *table) fclose (fp); - fprintf (table, " { NULL, 0, 0, 0,\n"); - - process_i386_opcode_modifier (table, "0", 0, 0, NULL, -1); - - process_i386_cpu_flag (table, "0", 0, ",", " ", -1); - - fprintf (table, " { "); - process_i386_operand_type (table, "0", stage_opcodes, "\t ", -1); - fprintf (table, " } }\n"); - fprintf (table, "};\n"); }