From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id YTJmAgOfYGo3ziQAWB0awg (envelope-from ) for ; Wed, 22 Jul 2026 06:44:19 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=njyBCywk; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 023A41E09E; Wed, 22 Jul 2026 06:44:18 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 9A2721E099 for ; Wed, 22 Jul 2026 06:44:16 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8B43F4BA2E22 for ; Wed, 22 Jul 2026 10:44:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8B43F4BA2E22 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=njyBCywk Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c10d::3]) by sourceware.org (Postfix) with ESMTPS id 0B3FA4BA2E07 for ; Wed, 22 Jul 2026 10:42:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0B3FA4BA2E07 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=amd.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0B3FA4BA2E07 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c10d::3 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784716970; cv=pass; b=CEuCS5O777yAfy83sw3Ab/ITJgIsWLWBtZfov9mZpz96BTUOrE0Drrwy1c4vxlA5YiXqu79LsyXIW4tmC3t5A6pnxG3+qo/loCUPH6AVO0FRiFwJMtHIDB0O1lgunaR+J/tHcealW1KSMqXqPnZjJ/EFeh/0eMaTfuSVbq+eHCw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784716970; c=relaxed/simple; bh=tCv7DxPUfHyI3EeKJIYxqSNcTdmb4CXLhKajDxCHMHk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Vqwy+Ue2hUX2PUOwGHpGVq4+AvEBWXOn+75ky0tcfwtsikDS4uPk/YcEAwJ/cvfw/YkPv/LuvS4wTniIzlDzp75JnLj/jFxjpSn58gA3yz9G1z7aWt3vTi2kKxL5QdvTiOvvP8P/kOLCYcDOxs13wTIpuu3hGb8E4UNROHgFdcU= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=njyBCywk DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0B3FA4BA2E07 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bLXnsLQeq6ZTNS0FTyDRurLr2mr3BscWsk7sLQiqDk1CUOFQgOvfWY0kN0ovAdWl4P4on7bPV1TAc5EmYTGmexTyZHP/d5+Gah5qAzKCmGR/Ds6gbS8udlL6pMW/vtyqoW17bPii/taPcldd7iw1GE/m2YKLk93bi44zaBdFZOTvjEB9/Rxvglx8jdRN/fdk+pE4m9+dodrzbGvAfqQ/CLVae3DpVBhTcLc2YoeWoAphwBdYTtHoOiSjFIIwXn98VBfSiEhF7IbI+9uL79hv3h+18qW5QKqi856BqgN0S7yOF1EEaE19B0Y5Qzth54c0mwdzIwDUA78Svi6UNkkhIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=fSfmOZefinYUOHeOQCrSPdPfJBNh1mOGVbpywTXlpgo=; b=EpEYyr9/f3++FjbJfC1eAOmwJpg/xZaX199LAxDE85VGhH0fYS100cuY4GrbsBUlqSPaVB0wX8Y6zuRvC3vKQf/WsBTKoinJX56lEtCTBNwmSCQDGSlDA80lMBv5p1NKmwP+pp5l68uXvZw7Jw6YySaSWbIPqF64DOOFih36lLr8nGr5IPOU/1cGC4o3LUIW+SSznBzGRodQCHeRlfQOt+LCpipxZS2NeaFg5AEkgHlC9Y/prFJoRLiPQZSzUDkpxx7Mym8cYbVCh98jkIuEYdZnvYGWtXfgQv3IfcS84H8QbXUoi+f1NfdjrAND4Tce8TeOnIncjuqoTynpIyG8aA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=sourceware.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fSfmOZefinYUOHeOQCrSPdPfJBNh1mOGVbpywTXlpgo=; b=njyBCywk1PtNt/iVU7+cesGuJUZD1FPHVQpaTxwWzG0kZ/76dbFmNXpXRJOXOUzlEyxfFsVKTN37xixuK7LQkM2JAzKlhIcc/qdSSuW2HwNy1DGJcUC1rS/rhqcIDDqoB5Y8vs64cxpea13Tupnrm3tt1J07EJuLrxEh1/Obtwg= Received: from CH0PR03CA0099.namprd03.prod.outlook.com (2603:10b6:610:cd::14) by DM4PR12MB5745.namprd12.prod.outlook.com (2603:10b6:8:5c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Wed, 22 Jul 2026 10:42:44 +0000 Received: from CH3PEPF00000013.namprd21.prod.outlook.com (2603:10b6:610:cd:cafe::27) by CH0PR03CA0099.outlook.office365.com (2603:10b6:610:cd::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.245.10 via Frontend Transport; Wed, 22 Jul 2026 10:42:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.0 via Frontend Transport; Wed, 22 Jul 2026 10:42:43 +0000 Received: from ctr-rack32-mi300x-1.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 22 Jul 2026 05:42:41 -0500 From: Tankut Baris Aktemur To: CC: Subject: [PATCH v2 03/17] gdb: convert address_class_name_to_type_flags to address_class_name_to_id Date: Wed, 22 Jul 2026 05:41:52 -0500 Message-ID: <20260722-users-aktemur-type-instance-flags-v2-3-d60dcbc2a76f@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260722-users-aktemur-type-instance-flags-v2-0-d60dcbc2a76f@amd.com> References: <20260722-users-aktemur-type-instance-flags-v2-0-d60dcbc2a76f@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.15.0 Content-Transfer-Encoding: 8bit X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF00000013:EE_|DM4PR12MB5745:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f876e80-3d1d-4e5b-35f9-08dee7ddf64f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|36860700016|82310400026|23010399003|18002099003|22082099003|6133799003|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: qDCViIi2EKcWoMgqDa7BciUgUTJF9iNRcBX4j+EeD81PnlCKqZYnnIyv0sDzBp0n3WY6NB5Aj++bGPZT5jdg0YXnG+eVXVLd7lQPf+uXqUfCCeILr+OrnaOzY0mRjmEtShiiuWryA8glfmoVn1OCSsxeqXSXn11n9+itUoWaJmuJKbPmCrLJhQSZopFm3MT7GhM25j3tbfcL95tfSyRwJ2WP5IAdharvkesU6jbRugoKA9M9r94y9eHxqIg5sjpxhXqtBqQPY+SMZsIeVxD0iptdbDW1J2UBVsVo1ifMrBu3VYLmhIS8BmRdeasNdsozNoPsHPJyVLUVBMLHE0Snr4ad7cwcw2Q+Xiy8fFPuXvEr6UGqgf/qz6nvhNIig6OAVIr3kAdTfco9wkv50PxKPZbfa3Q1LSPyW4bLaMcIATU91SWM10hM1cbvKqqE+kehfhgF+M2//xTFRWFRXwEioqnWxu0QXRywLFYcS/6ZPS7pDaz7MW2BqhCAdgQfMsvdEKt4KcPHYCzU1HnZJe3U9N8BD6IXcgzsVTHy9+bfgu3GLcrqTd3pOcmyw7vW0qpaJzEsCs0MiZ0fRdIf8PM5173CTDCaO79o9jngzcAwNR1bPk+4SWcyKnjtmA2LLtPsNUKZfUU5hmDxi4Ytcc5IB55vnoXhDTYKrHLM1MMRJlqbTwfUWc2Q4H+1edt+p5S+o0V1z7WyHW3loSt2TgylbQ== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:satlexmb07.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(23010399003)(18002099003)(22082099003)(6133799003)(56012099006)(10067099003)(11063799006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: B8uSk1EDTVSKnJ0s7bFpqMrpOFHNx0e3qFBrkbwB0hM1ZhKRPxnj3LFi7JCtio5eQ2hE03r2PL2pyz+WHbxRzJUdf/Cm22SmM6prmuGm/0uMjGGxDgygAw1yzKPJJrLpM0IeN+AecZSa1cl2p/AjvtqiTvJh1jBavMYATA+OtGuaD+FAzG3nAjIOZwyVjSEbuAWi79wSQGAqFHxb5aTjOA90QPmp8CnNu8JtKvGeM4WOBOiNhG6TJlueSSYEFiTlI8SwEUVP7h+a0pmBElO2ykW6+ITGF++8iHT6IV7Qe8qK5i6THBkGBVrev0ZDUUAnDFJTiKkZgPLG8fvtPaf7DbnP+gwaoFnsekJJfqL114PlB0dFJpuzpRWXas44bSQuYB6KRIFyw6CQFhYCBfocQBcaRtn+ZEqHFlvC2xu+qRRbiEcnAkSKSZWBIUKENZzA X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 10:42:43.8827 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9f876e80-3d1d-4e5b-35f9-08dee7ddf64f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF00000013.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5745 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org This is the dual of the previous patch, where we refactor the gdbarch method 'address_class_name_to_type_flags'. We make it take a name and return an address class id, instead of a whole type instance flags. In one case, there is hardcoded `aclass << 4` to convert an id to type instance flags. This will go away in a future patch. Approved-By: Tom Tromey --- gdb/avr-tdep.c | 16 ++++++++-------- gdb/ft32-tdep.c | 16 ++++++++-------- gdb/gdbarch-gen.c | 30 +++++++++++++++--------------- gdb/gdbarch-gen.h | 12 ++++++------ gdb/gdbarch_components.py | 8 ++++---- gdb/gdbtypes.c | 16 +++++++++------- gdb/s390-tdep.c | 14 +++++++------- 7 files changed, 57 insertions(+), 55 deletions(-) diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index d29e47b3a71..58330eececd 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1401,18 +1401,18 @@ avr_address_class_id_to_name (struct gdbarch *gdbarch, return NULL; } -/* Implementation of `address_class_name_to_type_flags' gdbarch method. +/* Implementation of `address_class_name_to_id' gdbarch method. - Convert an address space qualifier to a type_instance_flag_value. */ + Convert an address class name to an address class id. */ static bool -avr_address_class_name_to_type_flags (struct gdbarch *gdbarch, - const char* name, - type_instance_flags *type_flags_ptr) +avr_address_class_name_to_id (struct gdbarch *gdbarch, + const char* name, + unsigned int &address_class) { if (streq (name, "flash")) { - *type_flags_ptr = AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH; + address_class = AVR_ADDRESS_CLASS_FLASH; return true; } else @@ -1535,8 +1535,8 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_unwind_sp (gdbarch, avr_unwind_sp); set_gdbarch_address_class_type_flags (gdbarch, avr_address_class_type_flags); - set_gdbarch_address_class_name_to_type_flags - (gdbarch, avr_address_class_name_to_type_flags); + set_gdbarch_address_class_name_to_id + (gdbarch, avr_address_class_name_to_id); set_gdbarch_address_class_id_to_name (gdbarch, avr_address_class_id_to_name); diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c index b0da5bf815b..8906a09b0b6 100644 --- a/gdb/ft32-tdep.c +++ b/gdb/ft32-tdep.c @@ -368,18 +368,18 @@ ft32_address_class_id_to_name (struct gdbarch *gdbarch, return NULL; } -/* Implementation of `address_class_name_to_type_flags' gdbarch method. +/* Implementation of `address_class_name_to_id' gdbarch method. - Convert an address space qualifier to a type_instance_flag_value. */ + Convert an address class name to an address class id. */ static bool -ft32_address_class_name_to_type_flags (struct gdbarch *gdbarch, - const char* name, - type_instance_flags *type_flags_ptr) +ft32_address_class_name_to_id (struct gdbarch *gdbarch, + const char* name, + unsigned int &address_class) { if (streq (name, "flash")) { - *type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1; + address_class = 1; return true; } else @@ -610,8 +610,8 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_overlay_update (gdbarch, simple_overlay_update); set_gdbarch_address_class_type_flags (gdbarch, ft32_address_class_type_flags); - set_gdbarch_address_class_name_to_type_flags - (gdbarch, ft32_address_class_name_to_type_flags); + set_gdbarch_address_class_name_to_id + (gdbarch, ft32_address_class_name_to_id); set_gdbarch_address_class_id_to_name (gdbarch, ft32_address_class_id_to_name); diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c index e1c5a902b00..980682e1bfb 100644 --- a/gdb/gdbarch-gen.c +++ b/gdb/gdbarch-gen.c @@ -166,7 +166,7 @@ struct gdbarch gdbarch_address_class_type_flags_ftype *address_class_type_flags = nullptr; gdbarch_address_class_id_to_name_ftype *address_class_id_to_name = nullptr; gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op = default_execute_dwarf_cfa_vendor_op; - gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags = nullptr; + gdbarch_address_class_name_to_id_ftype *address_class_name_to_id = nullptr; gdbarch_register_reggroup_p_ftype *register_reggroup_p = default_register_reggroup_p; gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument = nullptr; gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections = nullptr; @@ -421,7 +421,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of address_class_type_flags, has predicate. */ /* Skip verify of address_class_id_to_name, has predicate. */ /* Skip verify of execute_dwarf_cfa_vendor_op, invalid_p == 0. */ - /* Skip verify of address_class_name_to_type_flags, has predicate. */ + /* Skip verify of address_class_name_to_id, has predicate. */ /* Skip verify of register_reggroup_p, invalid_p == 0. */ /* Skip verify of fetch_pointer_argument, invalid_p == 0. */ /* Skip verify of iterate_over_regset_sections, has predicate. */ @@ -974,11 +974,11 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "gdbarch_dump: execute_dwarf_cfa_vendor_op = <%s>\n", host_address_to_string (gdbarch->execute_dwarf_cfa_vendor_op)); gdb_printf (file, - "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n", - gdbarch_address_class_name_to_type_flags_p (gdbarch)); + "gdbarch_dump: gdbarch_address_class_name_to_id_p() = %d\n", + gdbarch_address_class_name_to_id_p (gdbarch)); gdb_printf (file, - "gdbarch_dump: address_class_name_to_type_flags = <%s>\n", - host_address_to_string (gdbarch->address_class_name_to_type_flags)); + "gdbarch_dump: address_class_name_to_id = <%s>\n", + host_address_to_string (gdbarch->address_class_name_to_id)); gdb_printf (file, "gdbarch_dump: register_reggroup_p = <%s>\n", host_address_to_string (gdbarch->register_reggroup_p)); @@ -3561,27 +3561,27 @@ set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, } bool -gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch) +gdbarch_address_class_name_to_id_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != nullptr); - return gdbarch->address_class_name_to_type_flags != nullptr; + return gdbarch->address_class_name_to_id != nullptr; } bool -gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr) +gdbarch_address_class_name_to_id (struct gdbarch *gdbarch, const char *name, unsigned int &address_class) { gdb_assert (gdbarch != nullptr); - gdb_assert (gdbarch->address_class_name_to_type_flags != nullptr); + gdb_assert (gdbarch->address_class_name_to_id != nullptr); if (gdbarch_debug >= 2) - gdb_printf (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n"); - return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr); + gdb_printf (gdb_stdlog, "gdbarch_address_class_name_to_id called\n"); + return gdbarch->address_class_name_to_id (gdbarch, name, address_class); } void -set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, - gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags) +set_gdbarch_address_class_name_to_id (struct gdbarch *gdbarch, + gdbarch_address_class_name_to_id_ftype address_class_name_to_id) { - gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags; + gdbarch->address_class_name_to_id = address_class_name_to_id; } bool diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h index 9fea082a690..05b1656a511 100644 --- a/gdb/gdbarch-gen.h +++ b/gdb/gdbarch-gen.h @@ -918,15 +918,15 @@ using gdbarch_execute_dwarf_cfa_vendor_op_ftype = bool (struct gdbarch *gdbarch, bool gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs); void set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op); -/* Return the appropriate type_flags for the supplied address class. +/* Return the appropriate address class id for the supplied address class name. This function should return true if the address class was recognized and - type_flags was set, false otherwise. */ + address_class was set, false otherwise. */ -bool gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch); +bool gdbarch_address_class_name_to_id_p (struct gdbarch *gdbarch); -using gdbarch_address_class_name_to_type_flags_ftype = bool (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr); -bool gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr); -void set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags); +using gdbarch_address_class_name_to_id_ftype = bool (struct gdbarch *gdbarch, const char *name, unsigned int &address_class); +bool gdbarch_address_class_name_to_id (struct gdbarch *gdbarch, const char *name, unsigned int &address_class); +void set_gdbarch_address_class_name_to_id (struct gdbarch *gdbarch, gdbarch_address_class_name_to_id_ftype *address_class_name_to_id); /* Is a register in a group */ diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py index 5ec4bdee819..d5d5a6d4fe3 100644 --- a/gdb/gdbarch_components.py +++ b/gdb/gdbarch_components.py @@ -1570,13 +1570,13 @@ FS are passed from the generic execute_cfa_program function. Method( comment=""" -Return the appropriate type_flags for the supplied address class. +Return the appropriate address class id for the supplied address class name. This function should return true if the address class was recognized and -type_flags was set, false otherwise. +address_class was set, false otherwise. """, type="bool", - name="address_class_name_to_type_flags", - params=[("const char *", "name"), ("type_instance_flags *", "type_flags_ptr")], + name="address_class_name_to_id", + params=[("const char *", "name"), ("unsigned int &", "address_class")], predicate=True, ) diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index f3c77073f70..87cc7d15d0d 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -543,18 +543,20 @@ type_instance_flags address_space_name_to_type_instance_flags (struct gdbarch *gdbarch, const char *space_identifier) { - type_instance_flags type_flags; - /* Check for known address space delimiters. */ if (streq (space_identifier, "code")) return TYPE_INSTANCE_FLAG_CODE_SPACE; else if (streq (space_identifier, "data")) return TYPE_INSTANCE_FLAG_DATA_SPACE; - else if (gdbarch_address_class_name_to_type_flags_p (gdbarch) - && gdbarch_address_class_name_to_type_flags (gdbarch, - space_identifier, - &type_flags)) - return type_flags; + + unsigned int aclass; + if (gdbarch_address_class_name_to_id_p (gdbarch) + && gdbarch_address_class_name_to_id (gdbarch, + space_identifier, + aclass)) + { + return (enum type_instance_flag_value) (aclass << 4); + } else error (_("Unknown address space specifier: \"%s\""), space_identifier); } diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 57ddce44644..1aebdfa46d3 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1632,17 +1632,17 @@ s390_address_class_id_to_name (struct gdbarch *gdbarch, return NULL; } -/* Implement addr_class_name_to_type_flags gdbarch method. +/* Implement addr_class_name_to_id gdbarch method. Only used for ABI_LINUX_ZSERIES. */ static bool -s390_address_class_name_to_type_flags (struct gdbarch *gdbarch, - const char *name, - type_instance_flags *type_flags_ptr) +s390_address_class_name_to_id (struct gdbarch *gdbarch, + const char *name, + unsigned int &address_class) { if (streq (name, "mode32")) { - *type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1; + address_class = 1; return true; } else @@ -7359,8 +7359,8 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) s390_address_class_type_flags); set_gdbarch_address_class_id_to_name (gdbarch, s390_address_class_id_to_name); - set_gdbarch_address_class_name_to_type_flags (gdbarch, - s390_address_class_name_to_type_flags); + set_gdbarch_address_class_name_to_id (gdbarch, + s390_address_class_name_to_id); break; } -- 2.34.1