From patchwork Fri Feb 24 18:41:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Machado X-Patchwork-Id: 65614 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 8F7083851C20 for ; Fri, 24 Feb 2023 18:41:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F7083851C20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677264117; bh=3vNRm5hsGPypQXPXALJ4jxy8POtJ1st/P1G4wc1vBNI=; h=To:CC:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=s2HMvoYhW6WoWacN1SKK4u67jyifVOptlOTaFdKrZwDNO2yLhH8D9sKcf685g2NrZ ZX7pzuEyZADgUoqcePLNb0YpgfIOcG+IB7mvwQ3Efqtmyk4hUuPfMb4r50WQdi0zQY 8ZSDH1LFHwXY3VSo0oyHl7Gf3JoCbz7H7hqDzccI= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2077.outbound.protection.outlook.com [40.107.8.77]) by sourceware.org (Postfix) with ESMTPS id 743143857C45 for ; Fri, 24 Feb 2023 18:41:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 743143857C45 Received: from AM7PR04CA0010.eurprd04.prod.outlook.com (2603:10a6:20b:110::20) by AM7PR08MB5415.eurprd08.prod.outlook.com (2603:10a6:20b:10d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.21; Fri, 24 Feb 2023 18:41:27 +0000 Received: from AM7EUR03FT025.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:110:cafe::e5) by AM7PR04CA0010.outlook.office365.com (2603:10a6:20b:110::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 18:41:27 +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 AM7EUR03FT025.mail.protection.outlook.com (100.127.140.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 18:41:27 +0000 Received: ("Tessian outbound 6e565e48ed4a:v132"); Fri, 24 Feb 2023 18:41:26 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b186245ce165c513 X-CR-MTA-TID: 64aa7808 Received: from 824c2d537ce1.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 635C7A56-A11A-4FAE-BCA7-54929F81F3C3.1; Fri, 24 Feb 2023 18:41:20 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 824c2d537ce1.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 24 Feb 2023 18:41:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iRuUrxEJEKXwBLXCJJ6dlASClOMR29iVzEck6tREztLIlo4OLu/EEExaXRmSduBA0lNpx9rhVpBiCU/60EIgLKikk27Hvi2AxO63uLmCG8seY7LsClnEYGAGvkx8O++g2aNwNEHXMc6v3W67QnmRNZya9F7LGRb5Q7PkSBsiHMb7G4JjolYESj3TnYoskdIzquyIxVZH2kuzqAkilagMkm7scZB+Lw/UC+FeNzOD68/ix/J0c6bzaviuIKeIXhsOY2Ae7eC+0zC8OlFbiLWz3doZy/yagsg2wol7snNvHBjgcrQJTIZJa7IW9H/NJhFN4G3JewNBZ0NbdnZp45OuxQ== 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=3vNRm5hsGPypQXPXALJ4jxy8POtJ1st/P1G4wc1vBNI=; b=CXayUiunxyJ/wyMoMD9TRAe5vqNvah01vmKgj8nA3eGZPyc9oL0NLvWcOeP/Q8auE/e2FURzTYMxfpwFM5isfEduKbgBV5nyga/aBR8RjjUwgciAp93M8vQEqHJX7moC0P9VH2zLIIDW/xY7oArumrirFy+N9G3sMb0BJbXFh8b17aygzbUzw0vJd92o6J0pISdmbMYPFfJNHvrbRezuekVeru+wQQodFm6g1HaJ4/4pLAGAtZRM58o0l5v7/dtcwNBHnhXjW3WtnKXxibcHDU6x+UK/zDeQdc9FG+42Uo7yenEcah5+084Mp2MaQ7E4K6EIYjO+vrXlHqn7NXsZSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none Received: from DU2PR04CA0058.eurprd04.prod.outlook.com (2603:10a6:10:234::33) by VI1PR08MB5342.eurprd08.prod.outlook.com (2603:10a6:803:132::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 18:41:17 +0000 Received: from DBAEUR03FT051.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:234:cafe::a) by DU2PR04CA0058.outlook.office365.com (2603:10a6:10:234::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 18:41:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DBAEUR03FT051.mail.protection.outlook.com (100.127.142.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6156.11 via Frontend Transport; Fri, 24 Feb 2023 18:41:16 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.17; Fri, 24 Feb 2023 18:41:15 +0000 Received: from e129171.arm.com (10.57.90.34) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.17 via Frontend Transport; Fri, 24 Feb 2023 18:41:14 +0000 To: CC: Subject: [PATCH, v2] [gdb/doc] arm: Expand documentation of XML features Date: Fri, 24 Feb 2023 18:41:13 +0000 Message-ID: <20230224184113.2171986-1-luis.machado@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230223095230.1813266-1-luis.machado@arm.com> References: <20230223095230.1813266-1-luis.machado@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT051:EE_|VI1PR08MB5342:EE_|AM7EUR03FT025:EE_|AM7PR08MB5415:EE_ X-MS-Office365-Filtering-Correlation-Id: d637115e-6fcd-4abd-d907-08db1696bcc9 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: 5T/NMtsU0N+frID0XlB/yJXPrqHmNhrrEkniLj1HFztKU/z3BKF9tNE+K6umA9AxGnzLPonGkXNtuKu2/ehRcmnG/wFkiaEooLv9B+a81/LY6lgsj8HO3ApNdJK269lirNFRagB92+eXNegMMe3nuXGMMyVuEkRukqCtaniKcIQaxMbonN8wJQ0RYe/8iDK7XSLk8agkEseR42n/TOM2MReMV8eJ9gTAlE+dei+QJrPZAkVrylpXiaylXeATTp1+qH7BrxKtKV1c79oKOoMNfPcUxtXBPa+nX5VS6B+Qf60C72i4boev87PZG3pc6PUuve3NIV1uWB2P4Cur9mu0TVQXDXPsFBjO029ut8Jo66ROyVrOZIlgOZke3+mWLbA6Ap1SvB7/ISHSPdwlmReDr2pTNbWQ1QWMrLO95PFRVYs0QVUufaUVodYwm6YVKlvwsy4uLNj/1zD3Op4IQ8lAY8q4isWna9lwXTZPX1HJ+Apsk0WeMv6xZz6d1b/njbvb/5DI8wH8CmSpZtel0aWxo/3OWuRZ6kgFU+fa9wLYrwDNXXtedzY11bUcfzRVcLVLyOYKrRbgIrQN9SHvVbxRW8im4H+YgnX+z7Lohqul/ZwRseNiNGixSXSXQU21PkEK/evl91q2M7NfjW9ai1Yr/0BNge5uO90SGlYKSIYJArozUqpyWQtO/lP4SBTiQrKEovJPZIC3P/YpVdhSsCE3Rg== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(346002)(136003)(376002)(396003)(451199018)(46966006)(36840700001)(2906002)(44832011)(30864003)(5660300002)(66899018)(41300700001)(8936002)(70586007)(70206006)(83380400001)(82310400005)(4326008)(6916009)(8676002)(316002)(36756003)(186003)(26005)(478600001)(1076003)(7696005)(47076005)(426003)(40480700001)(2616005)(86362001)(336012)(82740400003)(81166007)(356005)(36860700001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5342 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a366b19e-3615-47b6-e9a1-08db1696b6b0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CaAt64rJ/8FoYs4QStYG/bYCNgv/Wgd7IghuhDl8GPED5KBLnVtV9T/Wh50Sn5EZOEQh32Vn4jcN/Wy0v+myRULRv/S3ZP/Pi5AEnZqorBDUEX23yUGnryKzCIzQsnw9KZXyrwVNuoUuj/EyEjUiKEASiBR0RXXkzgOrEbHR1Uh1QuPLQIoTsgYSudk1gNsXq8qokVZM6uIZg6f9Glpz2lzoQ1in0pKiLcpdJ7bipjcQ22QhenLzP/lGZoLDMdcRUyaBIWpvM7GdLp0E08Lk75CNIJnSRIAnRKFkyMap5/T+gchpIyqQo2mseW1QusTO0lcPtNLUuErY4AyJ/azJCNoFLubSAPxE1ihlc6T688FFKqikjzOvBeEkqBI1eFPaeFlUiIhfBjDSRf4XOCG4iMes7X7LW14X1pH1LdUQNIeDuWn+Gh+E2Xc2hMEVPOtuTfDbhUJqe/sgTJyLLZFlJ2Py2qld/fxZVk2JyOQ30lxWQWA2NG+ISYtXXr/N14JGps1r+XwY0xJKFymGeX/YUIifZPb3HjyJyjCFFttTE/TeJZWEaf5jQI5wbVHvTXpULo02Ajm+mcd2tOwRWNKdjCnRnyVfijuNrI3+zBoMhKzQCc51N7nGMaW9fvUfW4bCDxBcDJqqfpVi+A8L59yJxpUcc4fq2QSgyAbg01W4/pmu4aUT1XA2lOD0EFpU9uF8pK0/lAGMrWV1HAaSFoSskw== 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:(13230025)(4636009)(376002)(39860400002)(136003)(346002)(396003)(451199018)(46966006)(40470700004)(36840700001)(86362001)(40460700003)(70586007)(70206006)(83380400001)(4326008)(41300700001)(5660300002)(316002)(8676002)(6916009)(2616005)(1076003)(8936002)(426003)(186003)(26005)(47076005)(478600001)(7696005)(336012)(82310400005)(36756003)(40480700001)(81166007)(2906002)(44832011)(30864003)(66899018)(36860700001)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2023 18:41:27.0526 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d637115e-6fcd-4abd-d907-08db1696bcc9 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: AM7EUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5415 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, LIKELY_SPAM_BODY, 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-Patchwork-Original-From: Luis Machado via Gdb-patches From: Luis Machado Reply-To: Luis Machado Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" The documentation of the XML features for Arm targets is very brief. I have received feedback saying it is quite unclear from the perspective of the debugging servers what should be defined in the XML features, how and what the outcome is in gdb. This patch attempts to clarify a bit more what all the possible features are. --- gdb/doc/gdb.texinfo | 283 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 259 insertions(+), 24 deletions(-) diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index c1ca45521ea..efb059efd46 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -47827,40 +47827,190 @@ optional: @samp{lp_start}, @samp{lp_end}, and @samp{bta}. @subsection ARM Features @cindex target descriptions, ARM features +@subsubsection Core register set for non-M-profile + The @samp{org.gnu.gdb.arm.core} feature is required for non-M-profile -ARM targets. -It should contain registers @samp{r0} through @samp{r13}, @samp{sp}, -@samp{lr}, @samp{pc}, and @samp{cpsr}. +ARM targets. It must contain the following registers: + +@itemize @minus +@item +@samp{r0} through @samp{r12}. The general purpose registers. They are 32 bits +in size and have a type of @samp{uint32}. +@item +@samp{sp}, the stack pointer register, also known as @samp{r13}. It is 32 bits +in size and has a type of @samp{data_ptr}. +@item +@samp{lr}, the link register. It is 32 bits in size. +@item +@samp{pc}, the program counter register. It is 32 bit in size and of type +@samp{code_ptr}. +@item +@samp{cpsr}, the current program status register containing all the status +bits. It is 32 bits in size. Historically this register was hardwired to +number 25, but debugging stubs that report XML do not need to use this number +anymore. +@end itemize + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection Core register set for M-profile For M-profile targets (e.g.@: Cortex-M3), the @samp{org.gnu.gdb.arm.core} -feature is replaced by @samp{org.gnu.gdb.arm.m-profile}. It should contain -registers @samp{r0} through @samp{r13}, @samp{sp}, @samp{lr}, @samp{pc}, -and @samp{xpsr}. +feature is replaced by @samp{org.gnu.gdb.arm.m-profile}, and it is a required +feature. It must contain the following registers: + +@itemize @minus +@item +@samp{r0} through @samp{r12}, the general purpose registers. They have a size +of 32 bits and a type of @samp{uint32}. +@item +@samp{sp}, the stack pointer register, also known as @samp{r13}. It has a size +of 32 bits and a type of @samp{data_ptr}. +@item +@samp{lr}, the link register. It has a size of 32 bits. +@item +@samp{pc}, the program counter register. It has a size of 32 bits and a type +of @samp{code_ptr}. +@item +@samp{xpsr}, the program status register containing all the status +bits. It has a size of 32 bits. Historically this register was hardwired to +number 25, but debugging stubs that report XML do not need to use this number +anymore. +@end itemize -The @samp{org.gnu.gdb.arm.fpa} feature is optional. If present, it -should contain registers @samp{f0} through @samp{f7} and @samp{fps}. +Upon seeing this feature, @value{GDBN} will acknowledge that it is dealing +with an M-profile target. This means @value{GDBN} will use hooks and +configurations that are meaningful to M-profiles. -The @samp{org.gnu.gdb.arm.m-profile-mve} feature is optional. If present, it -must contain register @samp{vpr}. +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. -If the @samp{org.gnu.gdb.arm.m-profile-mve} feature is available, @value{GDBN} -will synthesize the @samp{p0} pseudo register from @samp{vpr} contents. +@subsubsection FPA registers feature (obsolete) + +The @samp{org.gnu.gdb.arm.fpa} feature is obsolete and should not be +advertised by debugging stubs anymore. It used to advertise registers for +the old FPA architecture that has long been discontinued in toolchains. + +It is kept in @value{GDBN} for backward compatibility purposes so older +debugging stubs that don't support XML target descriptions still work +correctly. One such example is the KGDB debugging stub from +Linux or BSD kernels. + +The description below is for historical purposes only. This feature +used to contain the following registers: + +@itemize @minus +@item +@samp{f0} through @samp{f8}. The floating point registers. They are 96 bits +in size and of type @samp{arm_fpa_ext}. @samp{f0} is pinned to register +number 16. +@item +@samp{fps}, the status register. It has a size of 32 bits. +@end itemize + +@subsubsection M-profile Vector Extension (MVE) + +Also known as Helium, the M-profile Vector Extension is advertised via the +optional @samp{org.gnu.gdb.arm.m-profile-mve} feature. + +It must contain the following: + +@itemize @minus +@item +@samp{vpr}, the vector predication status and control register. It is 32 bits +in size and has a custom flags type. The flags type is laid out in a way that +exposes the @samp{P0} field from bits 0 to 15, the @samp{MASK01} field from +bits 16 to 19 and the @samp{MASK23} field from bits 20 to 23. + +Bits 24 through 31 are reserved. +@end itemize + +When this feature is available, @value{GDBN} will synthesize the @samp{p0} +pseudo-register from @samp{vpr} contents. + +This feature must only be advertised if the target is M-profile. Advertising +this feature for targets that are not M-profile may cause @value{GDBN} to +assume the target is M-profile when it isn't. If the @samp{org.gnu.gdb.arm.vfp} feature is available alongside the @samp{org.gnu.gdb.arm.m-profile-mve} feature, @value{GDBN} will -synthesize the @samp{q} pseudo registers from @samp{d} register +synthesize the @samp{q} pseudo-registers from @samp{d} register contents. -The @samp{org.gnu.gdb.xscale.iwmmxt} feature is optional. If present, -it should contain at least registers @samp{wR0} through @samp{wR15} and -@samp{wCGR0} through @samp{wCGR3}. The @samp{wCID}, @samp{wCon}, -@samp{wCSSF}, and @samp{wCASF} registers are optional. +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection XScale iwMMXt feature + +The XScale @samp{org.gnu.gdb.xscale.iwmmxt} feature is optional. If present, +it must contain the following: + +@itemize @minus +@item +@samp{wR0} through @samp{wR15}, registers with size 64 bits and a custom type +@samp{iwmmxt_vec64i}. @samp{iwmmxt_vec64i} is a union of four other +types: @samp{uint64}, a 2-element vector of @samp{uint32}, a 4-element +vector of @samp{uint16} and a 8-element vector of @samp{uint8}. +@item +@samp{wCGR0} through @samp{wCGR3}, registers with size 32 bits and +type @samp{int}. +@end itemize + +The following registers are optional: + +@itemize @minus +@item +@samp{wCID}, register with size of 32 bits and type @samp{int}. +@item +@samp{wCon}, register with size 32 bits and type @samp{int}. +@item +@samp{wCSSF}, register with size 32 bits and type @samp{int}. +@item +@samp{wCASF}, register with size 32 bit and type @samp{int}. +@end itemize + +This feature should only be reported if the target is XScale. + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection Vector Floating-Point (VFP) feature The @samp{org.gnu.gdb.arm.vfp} feature is optional. If present, it -should contain at least registers @samp{d0} through @samp{d15}. If -they are present, @samp{d16} through @samp{d31} should also be included. -@value{GDBN} will synthesize the single-precision registers from -halves of the double-precision registers. +should contain one of two possible sets of values depending on whether +VFP version 2 or VFP version 3 is in use. + +For VFP v2: + +@itemize @minus +@item +@samp{d0} through @samp{d15}. The double-precision registers. They are +64 bits in size and have type @samp{ieee_double}. +@item +@samp{fpscr}, the floating-point status and control register. It has a size +of 32 bits and a type of @samp{int}. +@end itemize + +For VFP v3: + +@itemize @minus +@item +@samp{d0} through @samp{d31}. The double-precision registers. They are +64 bits in size and have type @samp{ieee_double}. +@item +@samp{fpscr}, the floating-point status and control register. It has a size +of 32 bits and a type of @samp{int}. +@end itemize + +If this feature is available, @value{GDBN} will synthesize the +single-precision floating-point registers from halves of the double-precision +registers as pseudo-registers. + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection NEON architecture feature The @samp{org.gnu.gdb.arm.neon} feature is optional. It does not need to contain registers; it instructs @value{GDBN} to display the @@ -47869,12 +48019,97 @@ quad-precision registers from pairs of double-precision registers. If this feature is present, @samp{org.gnu.gdb.arm.vfp} must also be present and include 32 double-precision registers. +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection M-profile Pointer Authentication and Branch Target Identification feature + The @samp{org.gnu.gdb.arm.m-profile-pacbti} feature is optional, and -acknowledges support for the ARMv8.1-m PACBTI extensions. @value{GDBN} -will track return address signing states and will decorate backtraces using -the [PAC] marker, similar to AArch64's PAC extension. +acknowledges support for the ARMv8.1-m PACBTI extensions. + +This feature doesn't contain any required registers, and it only serves as a +hint to @value{GDBN} that the debugging stub supports the ARMv8.1-m PACBTI +extensions. + +When @value{GDBN} sees this feature, it will track return address signing +states and will decorate backtraces using the [PAC] marker, similar to +AArch64's PAC extension. @xref{AArch64 PAC}. +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection M-profile system registers feature + +The @samp{org.gnu.gdb.arm.m-system} optional feature was introduced as a way to +inform @value{GDBN} about additional system registers. + +At the moment this feature must contain the following: + +@itemize @minus +@item +@samp{msp}, the main stack pointer register. It is 32 bits in size with +type @samp{data_ptr}. +@item +@samp{psp}, the process stack pointer register. It is 32 bits in size with +type @samp{data_ptr}. +@end itemize + +This feature must only be advertised for M-profile targets. When @value{GDBN} +sees this feature, it will attempt to track the values of @samp{msp} and +@samp{psp} across frames. + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection M-profile Security Extensions feature + +The @samp{org.gnu.gdb.arm.secext} optional feature was introduced so +@value{GDBN} could better support the switching of stack pointers and +secure states in the Security Extensions. + +At the moment this feature must contain the following: + +@itemize @minus +@item +@samp{msp_ns}, the main stack pointer register (non-secure state). It is +32 bits in size with type @samp{data_ptr}. +@item +@samp{psp_ns}, the process stack pointer register (non-secure state). It is +32 bits in size with type @samp{data_ptr}. +@item +@samp{msp_s}, the main stack pointer register (secure state). It is 32 bits +in size with type @samp{data_ptr}. +@item +@samp{psp_s}, the process stack pointer register (secure state). It is 32 bits +in size with type @samp{data_ptr}. +@end itemize + +When @value{GDBN} sees this feature, it will attempt to track the values of +all 4 stack pointers across secure state transitions, potentially improving +unwinding when applications switch between security states. + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +@subsubsection TLS registers feature + +The optional @samp{org.gnu.gdb.arm.tls} feature contains TLS registers. + +Currently it contains the following: + +@itemize @minus +@item +@samp{tpidruro}, the user read-only thread id register. It is 32 bits in size +and has type @samp{data_ptr}. +@end itemize + +At the moment @value{GDBN} looks for this feature, but doesn't do anything +with it other than displaying it. + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + @node i386 Features @subsection i386 Features @cindex target descriptions, i386 features