From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by sourceware.org (Postfix) with ESMTPS id 85B89384781A for ; Wed, 16 Mar 2022 08:47:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 85B89384781A Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2054.outbound.protection.outlook.com [104.47.14.54]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-34-qnx4nbl5PjKQsMvY64aRHA-1; Wed, 16 Mar 2022 09:47:25 +0100 X-MC-Unique: qnx4nbl5PjKQsMvY64aRHA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lmCmu8kg/eORimHYMyb0Cl6Q+b8N1bPeTrY3JMIDnWo+4zzzDnKauxQG4mzyUfUZ47/FV+W5QxQAanPdkeMcj8i8ybb4f7fVtRZdrT00xLH/o8plglXWTYEbawSLxkxSJ2ejYSWzquRwpqXz7OhKW9XKRb8Dg9rotfLIeI5AWol8A8n7ewza2LZEQXcjIbYH3fuXZtyT0LYcX9CLKpGRBA0fcUcG6wLE+0vlC6zQ8th7ioi+EIoGDpBxkGyyOaC9ZCQXJ4c3vFH6Mo4CUT4KeY346fQ3n9FRWi+jsSKsJBMoaMSvFvSDVHcHw4MwMJW3Mm0gLOxsP1BAlBjuAsc2dw== 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=HIxJIcq4dXK+RIPDY2ncWtwDkA/LYHVjGopX4btaefU=; b=O+7xGzysK8GxSxkjDQ7XYid6gMy70DqFg0Oh7Vaj/ygmsDIEZF89gaqiPhxRYnTY+3+Dk5i3Au6FpXy0OQaKakqZLR9ZnABf8ht7B672k5vPCFPTuSEGUvdQmtaIlrURoS/HyirAYI7XYQ6GhlmV3+3DFVZ4t5cX9lMCDGBjQyfkaoDHkv6LHhKBWeRqFx1bpW1L6lmFQ5mzPBeHIz0VObE2/CmAcBJvsynYzdrvnd4NOGmKTeGE5omx3nz0HuqLsHO9+7riN1lNSj3pLEXGhcyLHNw1smeX8ZzFTAlx3o6NB7ddVvoj51YnhtYR+MxTJBfoQYQdKLEObwiHDZiSTA== 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 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by DBAPR04MB7463.eurprd04.prod.outlook.com (2603:10a6:10:1ad::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Wed, 16 Mar 2022 08:47:24 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::e8ce:db1c:5bb0:af0]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::e8ce:db1c:5bb0:af0%6]) with mapi id 15.20.5081.015; Wed, 16 Mar 2022 08:47:24 +0000 Message-ID: <5cd80865-5e63-9f2a-3cd3-627b62bf2c13@suse.com> Date: Wed, 16 Mar 2022 09:47:22 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: [PATCH 4/6] x86: unify CPU flag on/off processing Content-Language: en-US To: Binutils References: <93cecdf2-b805-4508-9e34-89fd0011ccc9@suse.com> From: Jan Beulich In-Reply-To: <93cecdf2-b805-4508-9e34-89fd0011ccc9@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS9PR06CA0282.eurprd06.prod.outlook.com (2603:10a6:20b:45a::26) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 09f17fbc-7e50-4207-9f56-08da07299775 X-MS-TrafficTypeDiagnostic: DBAPR04MB7463:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wFhPx9Bca7p1fD/SK+qjP5B2+oooUUNoOrBSS8YuCX+FKO/dg4jxXIi/NEOOa3FWIqlCSWJ3FANep4lbvEUL58MhQF8ouabPM7qTQVQNAhV2T2L7xytWkVoG+HDP4AI5fzpwlKPfstIQYZvhlSPxQTulmJ8DtNl9bRuODNX9ok9yFxcYSWY/5Iaa/F7HVtc5fdMsd5fLQ75oxB6EePSnZZq70pyGPoNJwnlA8Cw2YNrC0h7OZ2hxYIqOEpxpwke9pHgOlWd72fW1lIh7sQyRrcUjDxuxVazfBwOJ9aVOWRcY/l7Tccb0c2xaOmkjc3GH0RSspYNF9lozwPwyN6eObobqW1R+lqVb6F0tmCL0WTmZeiHDrtk3sPHCWexu0o7rBu5AmnNnbxlBp3Rq/ugbxRmPFZ8cgRcQgDtHMc5uUoMPUrGRH8GAptvC+ze9/kteboofIbON9CpAETozY4sp3Ud6ZvnvKg9Qyv6QPTPATrlpKNwkAXoXiHaoowYCUcQes0+2rx0wn8kwb/D/pbeezbVMxMExbAJbu2s7i6FNtR3zQL6WJmXvKxcybOzlquLaeMIxTVzqYF3/l3au0r6Vtgct21KFYi0LMg8uGEKlJVf4zTEexdRiMgL/GAL09DDOlUgy0SSDxztOd8OBRTnxXr5T5IEXLa8xLM4QBAAr5DbJyGJ9+vGlCrCNtP76jjO+FoZBIpXTx+pKWZkfw+EOjPxEMEUBwNBINwCh+KwpywY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5600.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(8936002)(2906002)(6486002)(6506007)(2616005)(508600001)(36756003)(316002)(6916009)(31686004)(6512007)(31696002)(4326008)(8676002)(66556008)(66946007)(66476007)(86362001)(186003)(26005)(5660300002)(38100700002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q09CcHQwVGJjNWtUM3pWQTNYb3NOUHVvTjRhK2N5Vk9qVG5BUSt1TXFheG5L?= =?utf-8?B?ank3eFNMRUVPSTZxa0puaXg5UHhJT01WcjF4RHNzUkdsZi84azM0c1plZlEx?= =?utf-8?B?WXpKbTlKTGd3eFdxbCs1K1Z6ZjVjM0M2a21SK0xDUE1WSjNFTUNta0haWEVN?= =?utf-8?B?bU9paXVZbmd3MkthZ0M1eUkvcXBiaE85cHRENFl0dmhPNUd4Y1BWY1JMWEJD?= =?utf-8?B?dDdaVy9DNmNtM080eVJDZG9vVS9mNGgzZEFnK20rNm1EMEdlOUErdXFpSlVj?= =?utf-8?B?SXdHZkRkcEJDZTRNNXdWQkJJR1l3Wm1BMDBadDY4dThEYkpDcmFVZTBwZG4z?= =?utf-8?B?WUYzaFQrYVZmNGFRbUZSeE5zdmd2N1lRbHo5WU9rRjI0Y1prSEVkWFZZMzIw?= =?utf-8?B?Vmh0dkNIUlQxdmlROU52eHh2bWpUbTRsWklxMzlsYkhwY0J4ZzdvYTZMWUN0?= =?utf-8?B?bWZMamVPK0phYnBWRFIvRVNJRUgrNHVLMzJ1Zm5TWE50SitLL2Z5dnQ2aElP?= =?utf-8?B?NklsS2Vvckt3aEUzR3hHRE5MYmo0MytQcjZTUnNpaEx6QmdYaG9MeFVPUXBG?= =?utf-8?B?dkxHVGZCN2NjNFM1K1MwMmJoNEpycTY5NjZqZkZSRzhWK3l6WTA1dXZ6K2Jn?= =?utf-8?B?ZkV0Y25neEQ3N1E1b0NkdUgwTHNuaEp3ZUQzQ1ZteE1oTDhEY0RRR0Yzc1Rn?= =?utf-8?B?TUc5Wm9XUmI1WndLUzdtbENMNFhrZjVMNTBSQ3NQMU9LZ2hSc0h0TjgzQ01N?= =?utf-8?B?c0VaSjh4bVdRbFFRWGsrWlp1ZjZVNGxiVGFuOFA2ZHZkcllYY0RhSndGOGRw?= =?utf-8?B?N1ZJdUdVQWFrZ3djTlY5b2lyaWhUUDFDcm5TWGg4c29TL3dpQWxxcDlaeHd3?= =?utf-8?B?UHB5MUI4d2ZaOFR6bHZKb2E1VGV6QmU5dDFuZE5FYTRJT2NvZnJVclVQQjJn?= =?utf-8?B?UXNJT0lyV25nZmhORXdkWWZHTmcyMmlPWkgwMUlrMjBtQXZQV2VGMVIxMnd3?= =?utf-8?B?STMwWXF0RlNYV1lNZzhhMEI4QXZIa25haDZLVTdwRTRDbU9uUWtMQmlNU25y?= =?utf-8?B?Q1VrencyZEJUNzRkL0FKQ3I4OTl4ZlUzRnR2TUV4UE5nem5QVnZYZG5obTlh?= =?utf-8?B?eEZoVUZkKzVRdk96K3N3MFZMRWZXUUVLVGI5c0FqdGh6THFyN3UvTWVLZXhk?= =?utf-8?B?S0tXMlVUMmxMalhUWnpoMUxQWVU1Zkp4WXVJZjlQN1RsejJQK1ZTclowYnE5?= =?utf-8?B?a3ozejVWS0oxWTFmdDFaUU1kUVcvaGE2aWIxeDdGYldTS0VCTjNrSVpzenBL?= =?utf-8?B?YVNWVzRrOVBncklmK09HVUhmRW9YVjcvVjRIQjVqRWhHU0hoR0FrM1VMZnZq?= =?utf-8?B?Z3M1TGxlSEx5c2VDK05LTGIvZThRai95Szl1Y2ZrNmZvcVhzZkVSdlFsOHhP?= =?utf-8?B?Y0txNDZ2VXM4aVlKVGhOL2g2VW5LN2crcEFlT0ZlNU0wWjRXZGpjQlNCVFYr?= =?utf-8?B?ZTVsWnhYbm5jZXNxOE9LMGpmVCtGRTRRMWVJTDhIZVZlYlR2ZGJhZXoyckxH?= =?utf-8?B?ZTV1bVlSQmdSNHd4ZWlRZklnUmJtZzRzRU9tZ3ZFeWNkNnNYNWRHZERNSmFx?= =?utf-8?B?eDV1aGpMUnIxK0dGZ1VWSEVzWmg2ZWI5THJ1TXowcHhqaXVnUTY4aEVKMjJz?= =?utf-8?B?d004NTNwRnZSVDV5Mkxab0d0S3cvM2JnWkxJL0tUWk4xWXhNa3F4bVVONk5E?= =?utf-8?B?c0JKLzFEN0s2bHR2TnVxellIOEVwQUhJU2NFL0tQaXpKeXpkQ1JmNkNoK0tL?= =?utf-8?B?RE11TlhrWWdCSTE4c3YvMU9wWWlVeUZyY25oVnpZS1JWTDZNMXNFanBNQVUx?= =?utf-8?B?NHhxMGd1bXFOK0JsQy9EblJTcUdLRDRzYTRxYUNTVy9SeEZEa3M1c0xRUndn?= =?utf-8?Q?eoFOOekuyQyS+wXrlOqNJS48n1ouQY4V?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09f17fbc-7e50-4207-9f56-08da07299775 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2022 08:47:24.3561 (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: S/wPbTuZzfh3DErdOvtG1eiB7H5jUX6GrMOP6qmFWmN8hFRFvp56QdpbQgHsZduPvPoWh2IdINyBQ82yuPQj0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7463 X-Spam-Status: No, score=-3032.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2022 08:47:29 -0000 There's no need for the arbitrary special "unknown" token: Simply recognize the leading ~ and process everything else the same, merely recording whether to set individual fields to 1 or 0. While there exclude CpuIAMCU from CPU_UNKNOWN_FLAGS - CPU_IAMCU_FLAGS override cpu_arch_flags anyway when -march=iamcu is passed, and there's no reason to have the stray flag set even if no insn actually is keyed to it. --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -46,7 +46,7 @@ typedef struct initializer static initializer cpu_flag_init[] = { { "CPU_UNKNOWN_FLAGS", - "unknown" }, + "~CpuIAMCU" }, { "CPU_GENERIC32_FLAGS", "Cpu186|Cpu286|Cpu386" }, { "CPU_GENERIC64_FLAGS", @@ -1044,22 +1044,15 @@ process_i386_cpu_flag (FILE *table, char const char *comma, const char *indent, int lineno) { - char *str, *next, *last; + char *str, *next = flag, *last; unsigned int i; + int value = 1; bitfield flags [ARRAY_SIZE (cpu_flags)]; /* Copy the default cpu flags. */ memcpy (flags, cpu_flags, sizeof (cpu_flags)); - if (strcasecmp (flag, "unknown") == 0) - { - /* We turn on everything except for cpu64 in case of - CPU_UNKNOWN_FLAGS. */ - for (i = 0; i < ARRAY_SIZE (flags); i++) - if (flags[i].position != Cpu64) - flags[i].value = 1; - } - else if (flag[0] == '~') + if (flag[0] == '~') { last = flag + strlen (flag); @@ -1081,22 +1074,18 @@ process_i386_cpu_flag (FILE *table, char flags[i].value = 1; /* Turn off selective bits. */ - for (; next && next < last; ) - { - str = next_field (next, '|', &next, last); - if (str) - set_bitfield (str, flags, 0, ARRAY_SIZE (flags), lineno); - } + value = 0; } - else if (strcmp (flag, "0")) + + if (strcmp (flag, "0")) { - /* Turn on selective bits. */ + /* Turn on/off selective bits. */ last = flag + strlen (flag); - for (next = flag; next && next < last; ) + for (; next && next < last; ) { str = next_field (next, '|', &next, last); if (str) - set_bitfield (str, flags, 1, ARRAY_SIZE (flags), lineno); + set_bitfield (str, flags, value, ARRAY_SIZE (flags), lineno); } }