From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 4eMgB96eYGphziQAWB0awg (envelope-from ) for ; Wed, 22 Jul 2026 06:43:42 -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=bhlWDvkP; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 165531E09B; Wed, 22 Jul 2026 06:43:42 -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 [38.145.34.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 4DC9C1E09E for ; Wed, 22 Jul 2026 06:43:36 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5C1134BA2E3E for ; Wed, 22 Jul 2026 10:43:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5C1134BA2E3E 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=bhlWDvkP Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazlp170130001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c10c::1]) by sourceware.org (Postfix) with ESMTPS id 7E17C4BA2E0C for ; Wed, 22 Jul 2026 10:42:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7E17C4BA2E0C 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 7E17C4BA2E0C Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c10c::1 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784716970; cv=pass; b=q5olBcNYOMgJUbuUZP9TRu3TkQLZ+BJggg3tDz2X6LGqW4RNx3VYoPRMf+q2JwNpJJyQaoyo210W6z5fhaODFdXGXRCNoK1b4yBdvngwZI8TfNOrrTXP9ChgyoR8PCF2M+qiN/HymgbEOSCrh5G9d4sBxCBAg3MiAlKypeyTMgA= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1784716970; c=relaxed/simple; bh=/UJcL3nBe5rErScO8tiRD+GeK/cms/QWXfhppegzqe8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Uxi14wbqtYVsydP6X1nKyX1XPburBtbMXrb0nPQyivxVTNCk9UaNmyOxb5Akz6tlb1fZTg4dtu7k97b+wD72cERYfT+OrqSGAgJDuXxRAm1ssdjF75BTuFuerkcwH+IBE0bljwIpzrGg4NxcE7Y+G1lVH+mj8j2NLZrJ0xtv1qw= 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=bhlWDvkP DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7E17C4BA2E0C ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vmZwxJpO3fMW4A6hb1j5rIvgEyqiAaFcGnjCA7hkc7JIrIE8YyvnNSrTJXnnhfjelOuieNdyoZLT0ZUhm5xzezlbSK6TeGHvivM4D45rgeTcsMASrp5r00Y3PegySFkMGekFR+F1qT4Uz/vrUkN+j/NH/Gn/2ZktU8Ramu8PwltbbFQozLrh0sh/EtWAZgl9CU7GlfYABAIrEp+012KCoyhhfjnUg7p0nuQZJciM4i5f3mBi2rQ0Zni2NoN5ga9Uq6zhZq7R2GioSOHTNB5EwOOklc0AEzdXSnUTfPBVBrotadeUMMF7CMAgrULkhAOSHV8gIgkNqNnS7IAhU2Ni1w== 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=wdzrULHHzfP8cYxlZ3zQnjikmeK5vIRMRpquHJvM6pI=; b=aFpH6UVbW69EP7Ows65fGzYbrsSgTYxNM/mLF9xB3ar5VGE1c5hXe2RT+u2pY2UL82gxlEya1si4HJALsHePQbg2uoyPezPr/35M++mTGyli02kMvbQ5ZW28LqItQYFQqpl5Yo/U27GpPBq7qezdnaa65dC2rysXWWytS2KJpzScLH7iktD77hl0Ps3hXiKq+3x5QIcU4k53RQ7doo8+jX4B7Qdm/0AQW8pHzpDAgygIGWNU8+/C13BXAOuGtsq0m+zr+USgx7WQO+C9xDJeXYxLRgNhdFLrXjBD+Pc9gQqlYDu4FCC9sQij9s27QMI+gs0UhRI86YXhPwp6oCv2NQ== 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=wdzrULHHzfP8cYxlZ3zQnjikmeK5vIRMRpquHJvM6pI=; b=bhlWDvkPRzOvoFkCN2F/RdE9YsROx9tYmTyVobyxsfB1yT0bEuDH0AHJ1Zs/os68SvQFnSLtw896UfWoFiVxwKyYtZxHJqghEZW507nVT8Q0zkBV6s6BQ0pYVHUFZ3hbXCziGVi9kvhDV5QDk2hA1vZ9pt72HcECCxOXrCmgMQA= Received: from CH0PR03CA0110.namprd03.prod.outlook.com (2603:10b6:610:cd::25) by CYXPR12MB9426.namprd12.prod.outlook.com (2603:10b6:930:e3::10) 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::22) by CH0PR03CA0110.outlook.office365.com (2603:10b6:610:cd::25) 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:44 +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:44 +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:42 -0500 From: Tankut Baris Aktemur To: CC: Subject: [PATCH v2 04/17] gdb: convert address_class_type_flags to address_class_dwarf_to_id Date: Wed, 22 Jul 2026 05:41:53 -0500 Message-ID: <20260722-users-aktemur-type-instance-flags-v2-4-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_|CYXPR12MB9426:EE_ X-MS-Office365-Filtering-Correlation-Id: 1064a541-e21e-4695-1532-08dee7ddf692 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|376014|23010399003|36860700016|22082099003|18002099003|56012099006|11063799006|10067099003|6133799003; X-Microsoft-Antispam-Message-Info: 9qdn7gPO0U2LQ0gw8ZmkxwFoscQo3luNKPJShmGhh1GORm82GwOdbLhTNNm5j20zkOYkti2dFLZZ1oPL9AnzAnRVaOw8EvapdX8ZA5bS7sNtc0OjbTFMKwFDZmAuvb1rlBYpFCOB9pAHwJ9BzkSgs+JtdTJqLno42TzLCrTO/AhjaktvzllgyXo9TONhX0RPop/nuoJyO8ht9iz89uIT3WC7jvUsfy/P0xQaEpuPgdXD05XuKJTQ4u1xcC61wyrqM+VLq3BTT5L+l0B+p152Ow75tm3jU+NGXgizwhlKqklUvDFlqDQrV24EF0D3ptgtaEF3h3wRmNwA1CK/bhFmaGRxeCXXtXsdi9rmGllKZ0uTfoT/Y7OZQXjx7osCuRShIoKrxKdek2eRSWs4NTywuX3KezqVpgJFYIA8uY+2fzFLko1RImHngvzAaLYqDXBcZ7efNLfDEGMpsJLXL+v9QsIvRpNtDmUGvDqAO/IbpeQ9ADxFjz8XvqAKl7AtDnIkPYwlpnKiiPERsWo3T1uQgGBhi2GATVvxHt70AgqsOjph7USvbSKc4vjxxE5BYfiJrb7LP4KwUMHPmQlfN39/Bj996vMP6uJZtOAQR9c4kFcP67f4j1KJ1McP++YMI1v2IUsTDZMbvGDn3pvIOmNj2PprT6592y9SgWydp01e7BS8iuuZnjVmV0fQcnn1h3zJdGm83f5TTXin4OUq0l/wNw== 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)(82310400026)(376014)(23010399003)(36860700016)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003)(6133799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UmyZGmYFC9lXlalrdqhpI+EuUEK3gx6pXyKd2bLwv93uT62tV+ZYf48LyWT/OngEan7ddu5Un0h/OQn+30WZ1pYAsSZXks6elwWcK3lZ/eiq6+LlpaRqVDqgUARMS75H6Kg/R58CrHSLvv56BYD8N9dU9z7rhGzMnCN3ZuB2j/rO6Redgh5GEvbJNgEmr7V3H/xA0eHB8IU7+A+1ow52s4YpziZ2toHcwidLI0fDLDCUdZ7KtlTBqBX/1r+I7jWzr3YDyRNMIw/FMKF394W8F/DZJr2RNvgMs/BuBfkq3LlIwzCBNBCFMvHxK6U0V7z6jPq75q8O6BmHCy2g/+sjsJC6SDRaj8fO3EBIp6iFEcUf8pejxCCAedbuVyZrCw3Zn9B+5+Rq4j+dp6pw9PuQxyGFfmJykcZbIQt9Ei2itwMypfe4pz6Di32K8p+91xm/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2026 10:42:44.3202 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1064a541-e21e-4695-1532-08dee7ddf692 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: CYXPR12MB9426 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 The gdbarch method 'address_class_type_flags' is used for letting an architecture translate the DW_AT_address_class attribute to an address class id. Make this clear by refactoring the method to return an id, instead of a whole type instance flags value. There is hardcoding of "<< 4" left in dwarf/read.c. This will go away in a future patch. --- gdb/avr-tdep.c | 17 ++++++++--------- gdb/dwarf2/read.c | 8 +++++--- gdb/ft32-tdep.c | 15 ++++++++------- gdb/gdbarch-gen.c | 32 ++++++++++++++++---------------- gdb/gdbarch-gen.h | 11 +++++++---- gdb/gdbarch_components.py | 8 ++++++-- gdb/s390-tdep.c | 12 ++++++------ 7 files changed, 56 insertions(+), 47 deletions(-) diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 58330eececd..2191ada4c2e 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -75,8 +75,6 @@ /* We are assigning the id 1 to the flash address space. */ #define AVR_ADDRESS_CLASS_FLASH 1 -#define AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH \ - TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 enum @@ -1370,20 +1368,20 @@ avr_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) return -1; } -/* Implementation of `address_class_type_flags' gdbarch method. +/* Implementation of `address_class_dwarf_to_id' gdbarch method. - This method maps DW_AT_address_class attributes to a - type_instance_flag_value. */ + This method maps a DW_AT_address_class attribute to an address + class id. */ -static type_instance_flags -avr_address_class_type_flags (int byte_size, int dwarf2_addr_class) +static unsigned int +avr_address_class_dwarf_to_id (int byte_size, int dwarf2_addr_class) { /* The value 1 of the DW_AT_address_class attribute corresponds to the __flash qualifier. Note that this attribute is only valid with pointer types and therefore the flag is set to the pointer type and not its target type. */ if (dwarf2_addr_class == 1 && byte_size == 2) - return AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH; + return AVR_ADDRESS_CLASS_FLASH; return 0; } @@ -1534,7 +1532,8 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_unwind_pc (gdbarch, avr_unwind_pc); set_gdbarch_unwind_sp (gdbarch, avr_unwind_sp); - set_gdbarch_address_class_type_flags (gdbarch, avr_address_class_type_flags); + set_gdbarch_address_class_dwarf_to_id + (gdbarch, avr_address_class_dwarf_to_id); set_gdbarch_address_class_name_to_id (gdbarch, avr_address_class_name_to_id); set_gdbarch_address_class_id_to_name diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 114c608fde3..3671e39daa2 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -12051,11 +12051,13 @@ read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu) && alignment != TYPE_RAW_ALIGN (type)) || addr_class != DW_ADDR_none) { - if (gdbarch_address_class_type_flags_p (gdbarch)) + if (gdbarch_address_class_dwarf_to_id_p (gdbarch)) { + unsigned int aclass + = gdbarch_address_class_dwarf_to_id (gdbarch, byte_size, + addr_class); type_instance_flags type_flags - = gdbarch_address_class_type_flags (gdbarch, byte_size, - addr_class); + = (enum type_instance_flag_value) (aclass << 4); gdb_assert ((type_flags & ~TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL) == 0); type = make_type_with_address_space (type, type_flags); diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c index 8906a09b0b6..476e79355c7 100644 --- a/gdb/ft32-tdep.c +++ b/gdb/ft32-tdep.c @@ -338,19 +338,19 @@ ft32_pointer_to_address (struct gdbarch *gdbarch, return addr | RAM_BIAS; } -/* Implementation of `address_class_type_flags' gdbarch method. +/* Implementation of `address_class_dwarf_to_id' gdbarch method. - This method maps DW_AT_address_class attributes to a - type_instance_flag_value. */ + This method maps a DW_AT_address_class attribute to an address + class id. */ -static type_instance_flags -ft32_address_class_type_flags (int byte_size, int dwarf2_addr_class) +static unsigned int +ft32_address_class_dwarf_to_id (int byte_size, int dwarf2_addr_class) { /* The value 1 of the DW_AT_address_class attribute corresponds to the __flash__ qualifier, meaning pointer to data in FT32 program memory. */ if (dwarf2_addr_class == 1) - return TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1; + return 1; return 0; } @@ -609,7 +609,8 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Support simple overlay manager. */ set_gdbarch_overlay_update (gdbarch, simple_overlay_update); - set_gdbarch_address_class_type_flags (gdbarch, ft32_address_class_type_flags); + set_gdbarch_address_class_dwarf_to_id + (gdbarch, ft32_address_class_dwarf_to_id); set_gdbarch_address_class_name_to_id (gdbarch, ft32_address_class_name_to_id); set_gdbarch_address_class_id_to_name diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c index 980682e1bfb..6008003466c 100644 --- a/gdb/gdbarch-gen.c +++ b/gdb/gdbarch-gen.c @@ -163,7 +163,7 @@ struct gdbarch gdbarch_adjust_dwarf2_line_ftype *adjust_dwarf2_line = default_adjust_dwarf2_line; bool cannot_step_breakpoint = false; bool have_nonsteppable_watchpoint = false; - gdbarch_address_class_type_flags_ftype *address_class_type_flags = nullptr; + gdbarch_address_class_dwarf_to_id_ftype *address_class_dwarf_to_id = 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_id_ftype *address_class_name_to_id = nullptr; @@ -418,7 +418,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of adjust_dwarf2_line, invalid_p == 0. */ /* Skip verify of cannot_step_breakpoint, invalid_p == 0. */ /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0. */ - /* Skip verify of address_class_type_flags, has predicate. */ + /* Skip verify of address_class_dwarf_to_id, 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_id, has predicate. */ @@ -959,11 +959,11 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "gdbarch_dump: have_nonsteppable_watchpoint = %s\n", plongest (gdbarch->have_nonsteppable_watchpoint)); gdb_printf (file, - "gdbarch_dump: gdbarch_address_class_type_flags_p() = %d\n", - gdbarch_address_class_type_flags_p (gdbarch)); + "gdbarch_dump: gdbarch_address_class_dwarf_to_id_p() = %d\n", + gdbarch_address_class_dwarf_to_id_p (gdbarch)); gdb_printf (file, - "gdbarch_dump: address_class_type_flags = <%s>\n", - host_address_to_string (gdbarch->address_class_type_flags)); + "gdbarch_dump: address_class_dwarf_to_id = <%s>\n", + host_address_to_string (gdbarch->address_class_dwarf_to_id)); gdb_printf (file, "gdbarch_dump: gdbarch_address_class_id_to_name_p() = %d\n", gdbarch_address_class_id_to_name_p (gdbarch)); @@ -3496,27 +3496,27 @@ set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch, } bool -gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch) +gdbarch_address_class_dwarf_to_id_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != nullptr); - return gdbarch->address_class_type_flags != nullptr; + return gdbarch->address_class_dwarf_to_id != nullptr; } -type_instance_flags -gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class) +unsigned int +gdbarch_address_class_dwarf_to_id (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class) { gdb_assert (gdbarch != nullptr); - gdb_assert (gdbarch->address_class_type_flags != nullptr); + gdb_assert (gdbarch->address_class_dwarf_to_id != nullptr); if (gdbarch_debug >= 2) - gdb_printf (gdb_stdlog, "gdbarch_address_class_type_flags called\n"); - return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class); + gdb_printf (gdb_stdlog, "gdbarch_address_class_dwarf_to_id called\n"); + return gdbarch->address_class_dwarf_to_id (byte_size, dwarf2_addr_class); } void -set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, - gdbarch_address_class_type_flags_ftype address_class_type_flags) +set_gdbarch_address_class_dwarf_to_id (struct gdbarch *gdbarch, + gdbarch_address_class_dwarf_to_id_ftype address_class_dwarf_to_id) { - gdbarch->address_class_type_flags = address_class_type_flags; + gdbarch->address_class_dwarf_to_id = address_class_dwarf_to_id; } bool diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h index 05b1656a511..6eda8693d58 100644 --- a/gdb/gdbarch-gen.h +++ b/gdb/gdbarch-gen.h @@ -896,11 +896,14 @@ void set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch, bool cannot_st bool gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch); void set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch, bool have_nonsteppable_watchpoint); -bool gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch); +/* Given the DWARF identifier for an architecture-specific address class, + return the id of that address class. */ -using gdbarch_address_class_type_flags_ftype = type_instance_flags (int byte_size, int dwarf2_addr_class); -type_instance_flags gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class); -void set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_ftype *address_class_type_flags); +bool gdbarch_address_class_dwarf_to_id_p (struct gdbarch *gdbarch); + +using gdbarch_address_class_dwarf_to_id_ftype = unsigned int (int byte_size, int dwarf2_addr_class); +unsigned int gdbarch_address_class_dwarf_to_id (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class); +void set_gdbarch_address_class_dwarf_to_id (struct gdbarch *gdbarch, gdbarch_address_class_dwarf_to_id_ftype *address_class_dwarf_to_id); /* Given an architecture-specific address class identifier, return the name of that address class. */ diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py index d5d5a6d4fe3..d8b2d114909 100644 --- a/gdb/gdbarch_components.py +++ b/gdb/gdbarch_components.py @@ -1539,8 +1539,12 @@ non-steppable watchpoints. ) Function( - type="type_instance_flags", - name="address_class_type_flags", + comment=""" +Given the DWARF identifier for an architecture-specific address class, +return the id of that address class. +""", + type="unsigned int", + name="address_class_dwarf_to_id", params=[("int", "byte_size"), ("int", "dwarf2_addr_class")], predicate=True, ) diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 1aebdfa46d3..1155b8dd648 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1607,14 +1607,14 @@ s390_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) return addr & 0x7fffffff; } -/* Implement addr_class_type_flags gdbarch method. +/* Implement addr_class_dwarf_to_id gdbarch method. Only used for ABI_LINUX_ZSERIES. */ -static type_instance_flags -s390_address_class_type_flags (int byte_size, int dwarf2_addr_class) +static unsigned int +s390_address_class_dwarf_to_id (int byte_size, int dwarf2_addr_class) { if (byte_size == 4) - return TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1; + return 1; else return 0; } @@ -7355,8 +7355,8 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_bit (gdbarch, 64); set_gdbarch_long_long_bit (gdbarch, 64); set_gdbarch_ptr_bit (gdbarch, 64); - set_gdbarch_address_class_type_flags (gdbarch, - s390_address_class_type_flags); + set_gdbarch_address_class_dwarf_to_id (gdbarch, + s390_address_class_dwarf_to_id); set_gdbarch_address_class_id_to_name (gdbarch, s390_address_class_id_to_name); set_gdbarch_address_class_name_to_id (gdbarch, -- 2.34.1