From patchwork Wed Mar 6 13:33:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 31735 Received: (qmail 35736 invoked by alias); 6 Mar 2019 13:33:51 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 35663 invoked by uid 89); 6 Mar 2019 13:33:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR04-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr70055.outbound.protection.outlook.com (HELO EUR04-HE1-obe.outbound.protection.outlook.com) (40.107.7.55) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 06 Mar 2019 13:33:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4FXL6t1qtdQmJGQazLRjUMc86FyI7ZeHgF+sO9msp9g=; b=FuIz6EXP121MKv8pQawiFiUfhiYp9maHb7g5/iPTTFyGihozitTeJ1qLUSko6GJeFkDfd38kEindp1ltk3ZdIkMQQkggIDkE2GEk1PZIrNRl2Jl0xmcbP3xv4AaEDzq0Ei1bea7/lUvINWqQl7DeDRNs3zIAFBWY7/fmj3Uz0hY= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2262.eurprd08.prod.outlook.com (10.172.227.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.19; Wed, 6 Mar 2019 13:33:38 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::e974:35a7:c83c:e5b7]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::e974:35a7:c83c:e5b7%3]) with mapi id 15.20.1686.018; Wed, 6 Mar 2019 13:33:38 +0000 From: Alan Hayward To: "gdb-patches@sourceware.org" CC: nd , Alan Hayward Subject: [PATCH v2 8/8] AArch64: Read pauth section from core files Date: Wed, 6 Mar 2019 13:33:37 +0000 Message-ID: <20190306133325.2531-9-alan.hayward@arm.com> References: <20190306133325.2531-1-alan.hayward@arm.com> In-Reply-To: <20190306133325.2531-1-alan.hayward@arm.com> received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-exchange-senderadcheck: 1 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-IsSubscribed: yes 2019-03-06 Alan Hayward Jiong Wang * aarch64-linux-tdep.c (aarch64_linux_iterate_over_regset_sections): Check for pauth section. * aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_PAUTH): New define. --- gdb/aarch64-linux-tdep.c | 20 ++++++++++++++++++++ gdb/aarch64-linux-tdep.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 5eeafa456c..32c5eefa35 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -627,6 +627,26 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, else cb (".reg2", AARCH64_LINUX_SIZEOF_FPREGSET, AARCH64_LINUX_SIZEOF_FPREGSET, &aarch64_linux_fpregset, NULL, cb_data); + + + if (tdep->has_pauth ()) + { + /* Create this on the fly in order to handle the variable location. */ + const struct regcache_map_entry pauth_regmap[] = + { + { 2, AARCH64_PAUTH_DMASK_REGNUM (tdep->pauth_reg_base), 8}, + { 0 } + }; + + const struct regset aarch64_linux_pauth_regset = + { + pauth_regmap, regcache_supply_regset, regcache_collect_regset + }; + + cb (".reg-aarch-pauth", AARCH64_LINUX_SIZEOF_PAUTH, + AARCH64_LINUX_SIZEOF_PAUTH, &aarch64_linux_pauth_regset, + "pauth registers", cb_data); + } } /* Implement the "core_read_description" gdbarch method. */ diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h index 244095cbca..a8c9443cbe 100644 --- a/gdb/aarch64-linux-tdep.h +++ b/gdb/aarch64-linux-tdep.h @@ -33,6 +33,9 @@ alignment. */ #define AARCH64_LINUX_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE) +/* The pauth regset consists of 2 X sized registers. */ +#define AARCH64_LINUX_SIZEOF_PAUTH (2 * X_REGISTER_SIZE) + extern const struct regset aarch64_linux_gregset; extern const struct regset aarch64_linux_fpregset;