From patchwork Fri Sep 8 12:55:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 75545 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 648C43858425 for ; Fri, 8 Sep 2023 12:55:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 648C43858425 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1694177749; bh=O3PoTfTs8O3+LTp/Fo9xMPOYgWvbG9MDPhvNxrKHENI=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=cfCTrJ8toP+i0Xn3EWnusS2JKswet+0QBz6DT0zPvgFf9BusuFZmlHJA812OzJD9n Z6CiQ8C3Kp1kBoQO+/agjJVprv6aMb2S/oFkoC4gaQ5oAye0a1h5+NoLrowTFfEGc6 um+FGZROuJ0drs0adJVE7PW34GfkOqMftm8P1dLQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2080.outbound.protection.outlook.com [40.107.241.80]) by sourceware.org (Postfix) with ESMTPS id 36B153858433 for ; Fri, 8 Sep 2023 12:55:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 36B153858433 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PMvB78c0msRZlrg3C4juySk7kOjqX9HrdFnTSKXWakLWphqH1BqVO1Rs5cWf0yO+0hR3U6/AaVOtSLFFbfxdPh1NawdINpEAoEtTrRXoOpoqx0BkPY0tnruiHOsZLqkuwL2fw6rCmVUrk0QaDiZX3o0Wh+LdF8osJ+PhAEO0yKEgrWAz+79GaN733lD0R2Uc86S91oFRpTCCTXTqfwA3Axx4YLmOQ3F9yiMzD+5kwm9d2h2p0uy1eRqXvkoT8qxEYvbk2/Ktbs313WevNqP9PQFBNy/lLj74AW8w6vrdRGQPnoc744mz+GGvDbbmmWUZL17gkqgHMDIci0/mG+dEnw== 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=O3PoTfTs8O3+LTp/Fo9xMPOYgWvbG9MDPhvNxrKHENI=; b=WxJyYik899Sb4cHZGMn/NnaFqLzTonaA4DLnCoXh4141Lq77al4rD9pcQ+cKvDttKLE15cOrWiKiHMps8de1oS1la8Ng6SzdiBDtQHX4No9ZO9jhHkzX/C/Ixiw8L3A0K0/k96BOU91ha3dBv0a5/bXfeMUw2rqeBxkgZFjPEqUvg62Hd3GtJnH2b9U0uOU6Qqlz0TbKzVCx7vFdVIV5U94Bxmo8/xWdeBOPQmGwRYv29V5tiraRyM9eHj6SfQMrmjYHF4CoboiMTI0eVJVkVUi3l//XQ+4+DhrFJMIDXxtN6IJG9IlOEA/lUmib7ADBsswULgQe55BIEP8Rx7V0kQ== 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 DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by DB8PR04MB6924.eurprd04.prod.outlook.com (2603:10a6:10:11e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.30; Fri, 8 Sep 2023 12:55:16 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654%6]) with mapi id 15.20.6768.029; Fri, 8 Sep 2023 12:55:16 +0000 Message-ID: Date: Fri, 8 Sep 2023 14:55:14 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Subject: [PATCH 4/4] x86: fold CpuLM and Cpu64 Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <830bde4f-c60e-4ab4-2ca0-86381408254f@suse.com> In-Reply-To: <830bde4f-c60e-4ab4-2ca0-86381408254f@suse.com> X-ClientProxiedBy: FR2P281CA0089.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::15) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB8PR04MB6924:EE_ X-MS-Office365-Filtering-Correlation-Id: 8de2ae70-53a9-41de-41c1-08dbb06ad922 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6l2Rn3uaQ7GiD0v6Y1JnxWNjgQQTtnO8i+LM7EntGeMoEesle/hJa5pDmhjmcJvF9TpaKMgGQvmXDyrpc91AGjEyKM7a+UIVkVIdejtgnJ3yqILZVUOynazyg+2npG6pA7zBZqChoXGR+by85xxDD5+gW0xTzIQWz2+0JCB8cit95tATJp3N7dtebmwc0YmFpp4AoTwHWQLG3oujQ9v1CTJ5t6DQX+KYe1ksj6vuL0BN4KN/Y7gOWM4IsgLxmpuG2A7I1gVmdgHeW2EpVe71HhuJ2KGf7aP62qp0iiVf6fg22yrvqJZotbQsfUECEgg5s12zZwvEu0G2+qeliPEMzCPZ/8mHNMStUwsIueQq2ofLQ/UVCSyTL24nGUZ/el8D/TYOu2mGZvL64ZLm8pPY3pSABpyxiNPcFAdCZQuiHX7Q21LXx+djVAr5GAnzw5ItkRJsuU5keFyEcXoI6WH/iOmPUOp6BU9gG88po9zlLXsWgziOpAn0MrU/hcuYSWUqegI3J7Y2dbaan3czyTgpN8FbsWtWUxPZDRQ2cd3IhDHkHwq0Sw0vl5fisCDhBlVbJFpp2zRQgRBBKtqbt2YeL9jNmZmwSMrxkxzRiHBOeKSImmYNwkP2Cu/N0zFdWifLV4eOuLjmqH3++bRSUB4d4w== 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:(13230031)(346002)(396003)(376002)(39860400002)(366004)(136003)(186009)(1800799009)(451199024)(31686004)(83380400001)(5660300002)(86362001)(36756003)(31696002)(26005)(41300700001)(66946007)(66476007)(2616005)(6506007)(6486002)(66556008)(478600001)(38100700002)(4326008)(8936002)(6512007)(8676002)(316002)(6916009)(2906002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?cXMqrKW27c44GGGE8JLoV1MSnNej?= =?utf-8?q?Zr8I/vIdyT748HQ+FNx61VwWibsfSSjjfl9ZHYB3Gys8l427e7mjqRYOq6snPQXS6?= =?utf-8?q?jw3oyYGZ8g3k1DmQHYUJ/PO0NFFcWh0FulIrX3tpaxnK46Q3Hu+us1YQi+C2lSZDM?= =?utf-8?q?z1O83ZbcX0Zx/fIJ95DxVsGyQZ/04A21VpmKLuLkEbsSDtugQ6r8wg2mNfRrTAUn+?= =?utf-8?q?3AlZtcucQbP0SMCk16zG6kpqCTOHsR3a30JAldkDOS3W5ORRJeHfDYimhhZuT8V75?= =?utf-8?q?Ir90Kob0nh9IgpAMYxt/L1nl7Ooc5rk7QI6ArAOXF+QzvYrVFOtFYc0XFMZ4UiyKk?= =?utf-8?q?J0r8PuXPRPZIMGD+lpimYkSkOhgj2Jz8G1TYrHBVgcBSiMpHH3s1jeicHHlFfq3Cu?= =?utf-8?q?GU1PUXpjF8WUxWs/a5xhWL0hhuu/iwSXr8YHNO9ShaKK8W82N//jMn6/XqYmlmsYL?= =?utf-8?q?ds6mhQQexEJW6sj8JUbGxtvnA6oUvaAntnH5XT8GshQDrd26Dhwwd8b6UBlNUCzEL?= =?utf-8?q?tbA1HjmB7ctkXEH2dvaHfdsx+rK7B5KjE2cR3YflU8EgalkXvSbtR3A7jMg5gJu9n?= =?utf-8?q?LpEw5c3vNqc3Hn0Fn3oyU89F39+z7uSef6hF9vUwneK8OAvNivYQqrgEd6CHdmnei?= =?utf-8?q?rxkT+OnrGl/IjYqJOPKNK8UTkpPBN81juqHF80Aip68KpypZ3CYf/VUUcWgkBJhRq?= =?utf-8?q?26qIAnYpwcxxSUxFE7GuSohhjCp5P3HfGx5zDlvh/4F1D5p1rzBxsbDBXypurIguf?= =?utf-8?q?7lElqkk+PzSr6ZjBzmULBuMrYGBaIFbxLKKNy1WTpaR0RBHO7nSz5NIbg0GiZRZ4R?= =?utf-8?q?DNiTwYw6ScZ/7s0e8h4uSwBsLo1XJGLS3XOcxMz/JfGknXOHvGiFaccPcwxc6uwek?= =?utf-8?q?47NFJcHEwA5nXtHiesIIgcLTdFCreiSLdI8GQV2yqajbcGgvPeCsHwpLkR2xVmMBy?= =?utf-8?q?lMaKHH0o9ZJLA4KVp0Y2nKugbYISrJ2InijCtx3NP/m1AMGKbvm0rIRARVbrcWPix?= =?utf-8?q?iihC4B3+z/IuTkggeJSecidY0EkKGOmx1sIO/TEpsqGydbfvEBMlq43pvBbI1oQxc?= =?utf-8?q?0SNV2rKQoe6SSuHKRfXInxwWtoV6wEpUdfdfrX57fPfh6LjjZximZjHQmsJHPXzJB?= =?utf-8?q?y8+tjnm9K5XWDA/ksZTgaK1aP9G7CwaClWL7esryY3CF7jsF0ArRGuAafr78TujaN?= =?utf-8?q?vJc1U5op4kNWCJ98fR9VKXL6EKGHtojd7MV2LYQNur5/CPtkWz1Zdb4UhGSYCSTGQ?= =?utf-8?q?0xmkD+oCZ1mUy7yXtqZc8+ZYu3nJG1PRJjuEYf7IFSUTB5d38nYZEUndOF+MvCAhA?= =?utf-8?q?7uE8D2u5K3FLvhlFlu8sPa0jZ1fneMd0UmTc4DhrBsG4mbWG1K3rKUeR4Er3R1yYz?= =?utf-8?q?RseNZUvG7h3PGzWttJgWjyH+dj+vsqbKpNQs4sqR5GEUs7PWvHqtI9zLicx9gSQF8?= =?utf-8?q?e2KA6NWrBrXwnuxqUQZVi+gADJmXEEz9/KYv+Zv6TKJRHvMzI8vTlz43zFSRd3s9E?= =?utf-8?q?Iv4CPJ2Z+Q0h?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8de2ae70-53a9-41de-41c1-08dbb06ad922 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2023 12:55:16.0282 (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: SV7Sw4GX+Cfru6fKoClZ+rx5s3RgIBsVCObJ1tFYWdPA1MDwL9SyLEsoyXuOBOOZEy2+hJC9v5BiKd/mXCIUoQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6924 X-Spam-Status: No, score=-3026.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" Now that CpuLM is used solely in cpu_arch_flags and cpu_arch[] while Cpu64 is solely used in insn templates, they no longer need to be treated different from other "ordinary" flags; the only "unusual" one left if CpuNo64. Fold both, leaving just Cpu64. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2612,7 +2612,7 @@ update_code_flag (int value, int check) { PRINTF_LIKE ((*as_error)) = check ? as_fatal : as_bad; - if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpulm ) + if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpu64 ) { as_error (_("64bit mode not supported on `%s'."), cpu_arch_name ? cpu_arch_name : default_arch); @@ -2907,7 +2907,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED { check_cpu_arch_compatible (string, cpu_arch[j].enable); - if (flag_code == CODE_64BIT && !cpu_arch[j].enable.bitfield.cpulm ) + if (flag_code == CODE_64BIT && !cpu_arch[j].enable.bitfield.cpu64 ) { as_bad (_("64bit mode not supported on `%s'."), cpu_arch[j].name); @@ -13986,7 +13986,7 @@ static bool check_register (const reg_en } if (((r->reg_flags & (RegRex64 | RegRex)) || r->reg_type.bitfield.qword) - && (!cpu_arch_flags.bitfield.cpulm + && (!cpu_arch_flags.bitfield.cpu64 || r->reg_type.bitfield.class != RegCR || dot_insn ()) && flag_code != CODE_64BIT) --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -262,7 +262,7 @@ static const dependency isa_dependencies }; /* This array is populated as process_i386_initializers() walks cpu_flags[]. */ -static unsigned char isa_reverse_deps[Cpu64][Cpu64]; +static unsigned char isa_reverse_deps[CpuMax][CpuMax]; typedef struct bitfield { @@ -325,7 +325,6 @@ static bitfield cpu_flags[] = BITFIELD (LWP), BITFIELD (BMI), BITFIELD (TBM), - BITFIELD (LM), BITFIELD (Movbe), BITFIELD (CX16), BITFIELD (LAHF_SAHF), @@ -726,7 +725,10 @@ add_isa_dependencies (bitfield *flags, c *strchr (str, ':') = '\0'; isa = str; } - for (i = 0; i < Cpu64; ++i) + /* isa_dependencies[] prefers "LM" over "64". */ + else if (!strcmp (f, "LM")) + isa = "64"; + for (i = 0; i < CpuMax; ++i) if (strcasecmp (flags[i].name, isa) == 0) { flags[i].value = value; @@ -872,10 +874,10 @@ process_i386_cpu_flag (FILE *table, char else next = flag + 1; - /* First we turn on everything except for cpu64, cpuno64, and - if + /* First we turn on everything except for cpuno64 and - if present - the padding field. */ for (i = 0; i < ARRAY_SIZE (flags); i++) - if (flags[i].position < Cpu64) + if (flags[i].position < CpuNo64) flags[i].value = 1; /* Turn off selective bits. */ @@ -1968,7 +1970,7 @@ process_i386_initializers (void) process_copyright (fp); - for (i = 0; i < Cpu64; i++) + for (i = 0; i < CpuMax; i++) process_i386_cpu_flag (fp, "0", cpu_flags[i].name, "", " ", -1, i); for (i = 0; i < ARRAY_SIZE (isa_dependencies); i++) --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -147,8 +147,6 @@ enum i386_cpu CpuVMFUNC, /* Intel MPX Instructions required */ CpuMPX, - /* 64bit support available, used by -march= in assembler. */ - CpuLM, /* RDRSEED instruction required. */ CpuRDSEED, /* Multi-presisionn add-carry instructions are required. */ @@ -309,6 +307,8 @@ enum i386_cpu Cpu3dnow, /* 3dnow! Extensions support required */ Cpu3dnowA, + /* 64bit support required */ + Cpu64, /* AVX support required */ CpuAVX, /* HLE support required */ @@ -317,8 +317,6 @@ enum i386_cpu CpuAVX512F, /* Intel AVX-512 VL Instructions support required. */ CpuAVX512VL, - /* 64bit support required */ - Cpu64, /* Not supported in the 64bit mode */ CpuNo64, @@ -349,12 +347,12 @@ enum i386_cpu cpu387:1, \ cpu3dnow:1, \ cpu3dnowa:1, \ + cpu64:1, \ cpuavx:1, \ cpuhle:1, \ cpuavx512f:1, \ cpuavx512vl:1, \ - /* NOTE: These two fields need to remain last and in this order. */ \ - cpu64:1, \ + /* NOTE: This field needs to remain last. */ \ cpuno64:1 typedef union i386_cpu_attr @@ -435,7 +433,6 @@ typedef union i386_cpu_flags unsigned int cpuinvpcid:1; unsigned int cpuvmfunc:1; unsigned int cpumpx:1; - unsigned int cpulm:1; unsigned int cpurdseed:1; unsigned int cpuadx:1; unsigned int cpuprfchw:1;