From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140079.outbound.protection.outlook.com [40.107.14.79]) by sourceware.org (Postfix) with ESMTPS id 59B653858D1E for ; Tue, 4 Oct 2022 09:27:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 59B653858D1E ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Kas6irw35uVoyKDHj8nUxUbgvy2QNPjRqphorbUNaOUHi4NhamYcvRnsGMbfxSIIzadtKscJGrzYtWavzAnvjoVw/u99N+MRwnII6fTNeTubWO5T/jxw4zKNfZjWo7I6dnCAIkI5VGJdCz63JerO/KwKUHXpzqwi0bZJBudcfyoFm4RaS3QG0/fL8tJci4MJUJyWle49KQb4V12GN0veZoS9yrRoFa9ze9UdkHdF4iPDYeZfLKr2UoQxDQNeNWb/FyF91OcHW1ENYhBJ7T9m4B3OOUrrk9isNWNNPj2iYLDFWd4WeACakzLl2FbchpVOmk0CvcwynD7RhsN0kSRrHg== ARC-Message-Signature: i=2; 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=g0jUezFICNKzVYGResbM8n+mribdji/As9sK+p2Wcd0=; b=Y0NXHU5k5W0RQlCFFDTWampE8P9FDNhKdRNEJqBpd7rKzcovAW+ktmAsoivYS16RXxmLO474CWWDqj3vfLDriQGjgcBFUm/VwyCwuRYTTgBre0NbP6O+4P5ahm7EELzeotcDtc85Xjz1bF12Vp2hvlyxHftS33uqHLyDiNv1aH0VvuNtR2Kz0sv3/bWPNSsIc0ElL9vhLgsrRF+zjjdMoS85lpqVKmxDLfyNQcxD9ZRIacxNHdWR29qjwtJdCwzfGkr44mYY8D8OLW5U4bdizvN/sgbUGOXnmlfwlJ1naGz529gEGHB+7W5j4E9IQgHS9ghLkpEuT56iC+VeT/AXqg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DB6PR0301CA0099.eurprd03.prod.outlook.com (2603:10a6:6:30::46) by AS2PR08MB8901.eurprd08.prod.outlook.com (2603:10a6:20b:5f0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Tue, 4 Oct 2022 09:27:50 +0000 Received: from DBAEUR03FT021.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:30:cafe::ed) by DB6PR0301CA0099.outlook.office365.com (2603:10a6:6:30::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.15 via Frontend Transport; Tue, 4 Oct 2022 09:27:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT021.mail.protection.outlook.com (100.127.142.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17 via Frontend Transport; Tue, 4 Oct 2022 09:27:49 +0000 Received: ("Tessian outbound 937eed45f6ed:v128"); Tue, 04 Oct 2022 09:27:49 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ccc1fc478278ac34 X-CR-MTA-TID: 64aa7808 Received: from 0bc52fe38215.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5299F8C3-E67A-446C-8B1C-09A0AE8FC785.1; Tue, 04 Oct 2022 09:27:43 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0bc52fe38215.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 04 Oct 2022 09:27:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QTn/TJyAGjNxzRZ4i/F9iyAb+Rud/WgGe12sVHnmLmxhRCQ4nCVaVt7cObqVxiiTJF7hrMuHZ/RAvXqlPPwhHC3koYH4U/umBYKxf3dIr5R8k3oBmrDIlGGSRRN1YypftoWD68O9JeFdrNg7Tmdk8E1EFXiTR814VIqeis1+aAlAZSC0kTD+7yXOjKDhfovCBLr3q7FenQmVx6+OzNHuSYwAEOWgAfTa0nJjXkIZAJJ34C1YXGcc/f8ZqjtlsymsO8fxwepp/CmFtOf2B95cpko/vsj8PMF2OdprmgXR0rzxSvJThKgNhjTLCfEtSB9PfKZpUuTufHHJcaLtRvLSsg== 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=g0jUezFICNKzVYGResbM8n+mribdji/As9sK+p2Wcd0=; b=B/DMk8uTnt1+uK4g4o28IrJf2Lgx84sMExURAHR9O/Y+KGSy9CtK8SjUrbaiL8yvsTjhMZXz2WZGh25B8xVBGKaxKoieu8VfrTIB8Zs85cEjjM5seXHGa22bslX9JuKil6jVmbfuDOeWSZTknN7Ddnet0Bw5rvdyTQBksJZM4GupVa5og9sa3UrY3MRCblhMGZbvo0nTRELiS8ydyh+7+6PC7H2a8e7ZUgr8wPhR7HsQfz19C+COxWK5khNWobIq7TYX+JSONggklVcwz+t+VGUO6n2oNH6oN/spXRIrjdobWoK3Ed7P12Gxe8idlgIdndLf25bPCb/vu7WTaEDUFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) by AM8PR08MB5683.eurprd08.prod.outlook.com (2603:10a6:20b:1d1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Tue, 4 Oct 2022 09:27:34 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::c5f9:a25b:a5f2:6094]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::c5f9:a25b:a5f2:6094%5]) with mapi id 15.20.5676.028; Tue, 4 Oct 2022 09:27:34 +0000 Message-ID: <5f2703cf-c2f3-493a-e756-e0546f117aed@arm.com> Date: Tue, 4 Oct 2022 10:27:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH] AArch64 pauth: Fix internal error when target supports extra regs Content-Language: en-US To: Koudai Iwahori , gdb-patches@sourceware.org References: <20220928025057.188075-1-koudai@google.com> From: Luis Machado In-Reply-To: <20220928025057.188075-1-koudai@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO2P265CA0344.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:d::20) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3919:EE_|AM8PR08MB5683:EE_|DBAEUR03FT021:EE_|AS2PR08MB8901:EE_ X-MS-Office365-Filtering-Correlation-Id: f6195d75-4ff7-4ab3-9ea3-08daa5eab4af x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: WGpMV6oJjw33aaSIuKXwN8z+n7484yWe8mY+Y9BIZYgBHSKt+Uso3BkszGpbD3EFZY6rKoOr/uE0sh1/3LtHlqKBQ9GDK9ncNs6eMG2vT/XkUMDZE3cN3GjKceEe+1W3FF8IdL+Tom4+1yKDB2mMev8bPgqhsEg1uiNvORwShma4pHP0VTqnHpugVjGwA3+wZiO6tdkrUBcRli+K40YNeASFYXYC2rEqWo/Yr0TrVIOjrgk6pSDDL8xScirs3nPQbCjBNHlgRNz/jDKkLesVXwk09ZFF+NN2sv0DQAKFEYYDdH7/S+MPlNSsOah74ZMpOwmy+pGjZA/mHjWK3V3yUbYn5XXqGb/5CaL8nSP2QvE1MjJDjWIv8BF1g4iNjpROKnYQf8Z6cZC7W/HuPu+n2u990GxL365yuk9XaX2EF7ZhO5lOCXZXo8FkMdPdAP1ol24kx2SamzZ33bqj0QWt7vFdplcQ5VAa2ZOofDsx5JnPq4cPQKDf3PD7eQ9AcRrggzUiMN+7AsEgP+7zEtNMXUYAPK/woCAyQdSI6/Zf+UaWD21/wQkstqlqwZsPYSmH44pM1Lt/SSndQ6irwHMyJjMxyjOQMJebpIObS6QXR0FfNY5lXW6eJE/k6FxcUruUAYzN6EIhEeXgNrryo+9Gs0qv+iSJ/Bb69uqdi0oxIKbdkIuLcSzmEBaMPw6iaUyZuBfasXC4zHwSdBpUu8p8z2qUeiEN6sOiokKZXwEH49yKLmerOHDFCkwwdeq2DsKlAL0ARWyP3YpJGX72TCg0gwsfjL7uBATYKcm27bHzTUm/IHHSGBLXQqXrFNXBRnFGYAyAWUSJQWdplPm0EwHvsw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB3919.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(39860400002)(366004)(136003)(376002)(396003)(451199015)(41300700001)(5660300002)(36756003)(2906002)(8936002)(53546011)(44832011)(8676002)(26005)(86362001)(6666004)(31696002)(83380400001)(2616005)(186003)(6512007)(316002)(66476007)(66556008)(66946007)(478600001)(6486002)(966005)(6506007)(38100700002)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5683 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 707b3153-2648-4f0b-e647-08daa5eaab09 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IEfKvLn69zLr9rSj8AVWAXzjw3r2C978hryyZSDopRRuzDEWd5CevuKCvTWaf2sVkAoztdMrw7EQ3ZytAaUHMeY0b1356+0xTACdqVL1na2bzsDz2GBOcKTOXDTfd6/HwoTefjZ0xYVr8NrgqtaOPw80xzp6cVpjxXCSS+GEdF6VmZPj2m3gaczKNZ0lXv5Sy68k+BIzSXG6BrLD2e7yQ9Yrdm5uy9b/NqLTaqx9VYYJFQnawXv7VxhMWFf+OROJxdMAlSY8WzNbGfuVCB01IG75EzzII1VsRt3YiQ+t9gr9vFkImcUA8gHN/KwZdhrq7iEcFkVK6KN0Vwj9i/R01Gc3+V06t/OX1aPGJLNj2yw/UyEQCsDL8Lp4bxm/3VBelO/CueqVikJd5RNR0cIt/yXB7Z3EINDq4PStOyGmWIpnTDoLVVVj0q3zQ45E0iXF23hTgXceb6wQST2w8OTH0Py/75fGtUDqs+++vugN2Ez55JFecAe77TMVwithWKkNqFLSFq7fUSvx81XCD5zLkB/i4q2OUuOjxogRcE4WycoYPsaSzTPKIuehmMKUfZhT0yYCPgk5jIJrpwVWOiNQfGw+bDDdx3Kfq36nmTqIkBg4vTPn2axyIH86muiu+vP5FYCiHitrR8n4B8kC19DAshfx4AwnPhEEh8V/TaAZJ5X38Tzc14sonjOcKjqP5ysIDbDLE1TkmBDCtr/EnRWpESTIaROhsiXIvTuUYGxLvRMvFwF435Ij7dSMp0JCWx/z5gH0Nqs/9gcWmi/g4prAM+fkUtec6HQNTtsWmMvU1FFax5ESEgBBkyWOYCEvsG7g7u247Dic/Tm5m4AN1AQvXw== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230022)(4636009)(39860400002)(376002)(396003)(136003)(346002)(451199015)(46966006)(40470700004)(36840700001)(31686004)(2616005)(40460700003)(31696002)(86362001)(5660300002)(44832011)(2906002)(6486002)(41300700001)(8676002)(70206006)(70586007)(36756003)(356005)(8936002)(81166007)(82740400003)(40480700001)(36860700001)(6666004)(6512007)(6506007)(316002)(26005)(83380400001)(186003)(336012)(53546011)(47076005)(82310400005)(966005)(478600001)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2022 09:27:49.8685 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6195d75-4ff7-4ab3-9ea3-08daa5eab4af X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT021.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8901 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Oct 2022 09:27:56 -0000 Hi, This should be addressed by https://sourceware.org/pipermail/gdb-patches/2022-October/192272.html. Could you please give it a try? It was pushed yesterday. Out of curiosity, are you using user-mode QEMU? You mentioned extra registers, and those are usually provided by emulators. On 9/28/22 03:50, Koudai Iwahori via Gdb-patches wrote: > GDB crashes in aarch64_pseudo_register_type() when target supports pauth > and extra registers. > When the target supports pauth, GDB keeps a pseudo register `RA_STATE` > and aarch64_gdbarch_tdep::ra_sign_state_regnum has the integer index of > the register. > aarch64_gdbarch_tdep::ra_sign_state_regnum is initialized to > (# of reg) + (# of pseudo reg) right after GDB checking if the target > supports the core/fpu/sve registers. > However, the number of registers is updated in tdesc_use_registers() if > the target can provide extra registers. > In such cases, ra_sign_state_regnum does not have the right value and > internal_error() in aarch64_pseudo_register_type() fires. > I added ra_sign_state_pseudo_regnum field to aarch64_gdbarch_tdep for > storing the pseudo register number and added get_ra_sign_state_regnum > member function. > --- > gdb/aarch64-tdep.c | 23 ++++++++++++----------- > gdb/aarch64-tdep.h | 8 +++++++- > 2 files changed, 19 insertions(+), 12 deletions(-) > > diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c > index 7229b53838e..87335ad22ae 100644 > --- a/gdb/aarch64-tdep.c > +++ b/gdb/aarch64-tdep.c > @@ -254,7 +254,8 @@ aarch64_frame_unmask_lr (aarch64_gdbarch_tdep *tdep, > { > if (tdep->has_pauth () > && frame_unwind_register_unsigned (this_frame, > - tdep->ra_sign_state_regnum)) > + tdep->get_ra_sign_state_regnum ( > + get_frame_arch (this_frame)))) > { > int cmask_num = AARCH64_PAUTH_CMASK_REGNUM (tdep->pauth_reg_base); > CORE_ADDR cmask = frame_unwind_register_unsigned (this_frame, cmask_num); > @@ -542,7 +543,7 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch, > > if (tdep->has_pauth () && cache != nullptr) > { > - int regnum = tdep->ra_sign_state_regnum; > + int regnum = tdep->get_ra_sign_state_regnum (gdbarch); > cache->saved_regs[regnum].set_value (ra_state_val); > } > } > @@ -882,7 +883,7 @@ aarch64_analyze_prologue_test (void) > > if (tdep->has_pauth ()) > { > - int regnum = tdep->ra_sign_state_regnum; > + int regnum = tdep->get_ra_sign_state_regnum (gdbarch); > SELF_CHECK (cache.saved_regs[regnum].is_value ()); > } > } > @@ -1137,7 +1138,8 @@ aarch64_prologue_prev_register (struct frame_info *this_frame, > lr = frame_unwind_register_unsigned (this_frame, AARCH64_LR_REGNUM); > > if (tdep->has_pauth () > - && cache->saved_regs[tdep->ra_sign_state_regnum].is_value ()) > + && cache->saved_regs[tdep->get_ra_sign_state_regnum (gdbarch)] > + .is_value ()) > lr = aarch64_frame_unmask_lr (tdep, this_frame, lr); > > return frame_unwind_got_constant (this_frame, prev_regnum, lr); > @@ -1344,7 +1346,7 @@ aarch64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, > /* Init pauth registers. */ > if (tdep->has_pauth ()) > { > - if (regnum == tdep->ra_sign_state_regnum) > + if (regnum == tdep->get_ra_sign_state_regnum (gdbarch)) > { > /* Initialize RA_STATE to zero. */ > reg->how = DWARF2_FRAME_REG_SAVED_VAL_EXP; > @@ -2255,7 +2257,7 @@ aarch64_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) > if (tdep->has_pauth ()) > { > if (reg == AARCH64_DWARF_RA_SIGN_STATE) > - return tdep->ra_sign_state_regnum; > + return tdep->get_ra_sign_state_regnum (gdbarch); > } > > return -1; > @@ -2662,7 +2664,7 @@ aarch64_pseudo_register_name (struct gdbarch *gdbarch, int regnum) > /* RA_STATE is used for unwinding only. Do not assign it a name - this > prevents it from being read by methods such as > mi_cmd_trace_frame_collected. */ > - if (tdep->has_pauth () && regnum == tdep->ra_sign_state_regnum) > + if (tdep->has_pauth () && p_regnum == tdep->ra_sign_state_pseudo_regnum) > return ""; > > internal_error (__FILE__, __LINE__, > @@ -2698,7 +2700,7 @@ aarch64_pseudo_register_type (struct gdbarch *gdbarch, int regnum) > && p_regnum < AARCH64_SVE_V0_REGNUM + AARCH64_V_REGS_NUM) > return aarch64_vnv_type (gdbarch); > > - if (tdep->has_pauth () && regnum == tdep->ra_sign_state_regnum) > + if (tdep->has_pauth () && p_regnum == tdep->ra_sign_state_pseudo_regnum) > return builtin_type (gdbarch)->builtin_uint64; > > internal_error (__FILE__, __LINE__, > @@ -2732,7 +2734,7 @@ aarch64_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, > && p_regnum < AARCH64_SVE_V0_REGNUM + AARCH64_V_REGS_NUM) > return group == all_reggroup || group == vector_reggroup; > /* RA_STATE is used for unwinding only. Do not assign it to any groups. */ > - if (tdep->has_pauth () && regnum == tdep->ra_sign_state_regnum) > + if (tdep->has_pauth () && p_regnum == tdep->ra_sign_state_pseudo_regnum) > return 0; > > return group == all_reggroup; > @@ -3598,8 +3600,7 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) > tdep->jb_elt_size = 8; > tdep->vq = vq; > tdep->pauth_reg_base = first_pauth_regnum; > - tdep->ra_sign_state_regnum = (feature_pauth == NULL) ? -1 > - : ra_sign_state_offset + num_regs; > + tdep->ra_sign_state_pseudo_regnum = ra_sign_state_offset; > tdep->mte_reg_base = first_mte_regnum; > tdep->tls_regnum = tls_regnum; > > diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h > index d8513023c37..acb69b2dc40 100644 > --- a/gdb/aarch64-tdep.h > +++ b/gdb/aarch64-tdep.h > @@ -94,7 +94,13 @@ struct aarch64_gdbarch_tdep : gdbarch_tdep_base > } > > int pauth_reg_base = 0; > - int ra_sign_state_regnum = 0; > + int ra_sign_state_pseudo_regnum = -1; > + > + int get_ra_sign_state_regnum (gdbarch *gdbarch) const > + { > + gdb_assert (ra_sign_state_pseudo_regnum >= 0); > + return ra_sign_state_pseudo_regnum + gdbarch_num_regs (gdbarch); > + } > > /* Returns true if the target supports pauth. */ > bool has_pauth () const