From patchwork Wed Jul 10 13:22:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 33652 Received: (qmail 85127 invoked by alias); 10 Jul 2019 13:22:21 -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 85119 invoked by uid 89); 10 Jul 2019 13:22:21 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy=fps, SYSTEM, UD:dtd X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr130057.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (40.107.13.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 10 Jul 2019 13:22:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2ocQXjfNTJYpWWhRm8euXNtpwmOEv8ZLpayK/bWWHv0=; b=qPpAm7lvh0aJ0M6aTHMWoanVF9smuKjhXdOP1U8mi8pG205JrB64H9n3/dlEwMwzts17NGrlxkfzcW8HwaUNplmCiXvtMw/NUdmNVDkodo8dguKVDiKa7dLwpFlDoRf2mG+KIfvZI6X7WPXllbrccOoR7bes82KIuhN76pks9S8= Received: from VE1PR08CA0018.eurprd08.prod.outlook.com (2603:10a6:803:104::31) by AM5PR0801MB1841.eurprd08.prod.outlook.com (2603:10a6:203:2e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.10; Wed, 10 Jul 2019 13:22:11 +0000 Received: from DB5EUR03FT063.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::208) by VE1PR08CA0018.outlook.office365.com (2603:10a6:803:104::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2052.17 via Frontend Transport; Wed, 10 Jul 2019 13:22:11 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; sourceware.org; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT063.mail.protection.outlook.com (10.152.20.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2052.18 via Frontend Transport; Wed, 10 Jul 2019 13:22:09 +0000 Received: ("Tessian outbound 350ce6c32571:v24"); Wed, 10 Jul 2019 13:22:09 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e5e497dcf738474d X-CR-MTA-TID: 64aa7808 Received: from 22d10f768748.1 (ip-172-16-0-2.eu-west-1.compute.internal [104.47.14.50]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id A5021CA1-3CF8-4BD5-B156-FD09B9D9DA27.1; Wed, 10 Jul 2019 13:22:03 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 22d10f768748.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Wed, 10 Jul 2019 13:22:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ImTbXDaF076fwrkcR6BIPX9rQy2gpadJUz2d9ZB7VaeC0bJegPYnWZmtcvejh4kx2BtjVtvCepXqXrlmp7qaiPsI2SGmQWDhzeEZUnxLG9AIAD6pIASCZNUeYQjBxNqXb3srnfd7j597rL367IEvpWmlsT8yRTzDjl6sLDzuJd6EOxXkMlzfktOEJupJuK+KVITvqstpXMVnxAjJYIuqXiLCULjyqTo2zfaqbZ/VyUL905nNsaE9R/7UnM1twWi3VhtQtZu8SxrK2R68H0UaSQxxBvVf9E1zkJNxbl/zhFXxzEIWtpgkGdsbhd6sj4AZqyo4fziwfUjRDT5XXbYvVQ== 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-SenderADCheck; bh=2ocQXjfNTJYpWWhRm8euXNtpwmOEv8ZLpayK/bWWHv0=; b=aEoyyASYfxkDuD7kos5BRoePK8vRj4ycqwyFdoefgGf6PCCTnkyiefy3vihqJSwd+a1omH0CJNE/DBDtUy/P/urbG/h6tcwTRmZQ0uLenODIX5aMVANQ2oSZasjHFv42qAJ2DvjQ9C4SmKFCqv5aAcMHeMNmzlpYr0z7JLgN2xwOoH8Ble5XAQCAcFvk8w8Tv7PuCgXml1/dBRFCYh412m3gHlk3Oi+aB8+QWYXu3OduKdmywZgnqdo66nL2r1j1mejVGxUvyuLEcyLlJI4t5sSxlBPGkNzUzzqFE0wH10kRP3PQVscIhu+11dEhAL0NUQxXXFWXn9JVistINxfEiQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2ocQXjfNTJYpWWhRm8euXNtpwmOEv8ZLpayK/bWWHv0=; b=qPpAm7lvh0aJ0M6aTHMWoanVF9smuKjhXdOP1U8mi8pG205JrB64H9n3/dlEwMwzts17NGrlxkfzcW8HwaUNplmCiXvtMw/NUdmNVDkodo8dguKVDiKa7dLwpFlDoRf2mG+KIfvZI6X7WPXllbrccOoR7bes82KIuhN76pks9S8= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2485.eurprd08.prod.outlook.com (10.172.248.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.10; Wed, 10 Jul 2019 13:22:02 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::259b:8edf:fb65:2760]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::259b:8edf:fb65:2760%8]) with mapi id 15.20.2052.020; Wed, 10 Jul 2019 13:22:02 +0000 From: Alan Hayward To: Simon Marchi CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH 2/7] Arm: Create feature files for Arm target descriptions Date: Wed, 10 Jul 2019 13:22:01 +0000 Message-ID: <347804DF-A50D-4CF3-A4B9-758207F42183@arm.com> References: <20190705094525.51536-1-alan.hayward@arm.com> <20190705094525.51536-3-alan.hayward@arm.com> <2cf8ee69-f887-0a8b-91b0-d26eb2c3c9bc@simark.ca> In-Reply-To: <2cf8ee69-f887-0a8b-91b0-d26eb2c3c9bc@simark.ca> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; X-Microsoft-Antispam-Untrusted: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DB6PR0802MB2485; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(979002)(4636009)(39860400002)(396003)(366004)(136003)(346002)(376002)(54534003)(189003)(199004)(6512007)(5660300002)(7736002)(81156014)(81166006)(305945005)(6246003)(50226002)(68736007)(476003)(11346002)(486006)(446003)(4326008)(36756003)(8676002)(57306001)(86362001)(8936002)(316002)(53946003)(53546011)(76176011)(2616005)(186003)(256004)(6916009)(102836004)(30864003)(26005)(6506007)(478600001)(14454004)(33656002)(66556008)(66946007)(66066001)(66476007)(91956017)(71200400001)(71190400001)(66446008)(64756008)(76116006)(6486002)(229853002)(99286004)(53936002)(3846002)(6116002)(2906002)(54906003)(6436002)(25786009)(579004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0802MB2485; H:DB6PR0802MB2133.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: Bp0ETWgtSW6AgJYSJUAy9ed06ZEcs+NHUuZs7esax1JVvk3ts140Uin40b+t8NHdmNgF7iz369m3iZSa0kqEXH8xA9+Ur/FeBcHv0Fc9/HuutQTgwgQHqL4E8RvH+DyDdr332HzpIaZScI5FRyFYRlbC/tISUxk5e4jiD3b9wGYBBhkj/YZbVLXLCOhPz3rSZI/AM4PyvpAJvf+zXHOrfKGSkSHgogI5HvAQ4RSfjTUoOIDixK18TeE1kfvr9D7zn7TV2/VslEWwg0dK1+l19xbd7Lbm9cUimI/1m8DQHwc1OrCmJqY44EJdwGr4sJKz2DBm5rfRPBVtTl62LPKwatGKSgIANEUCwd+GE5nfx6h99Rv/C0UuJhUoUtJrAbq3eQQ70LPUEkezSNCwO460ugk8HQ6d4LcjdvxMkPqbuX4= Content-ID: MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Return-Path: Alan.Hayward@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: effbaf68-4646-4dbb-2d75-08d70539982b X-IsSubscribed: yes > On 10 Jul 2019, at 03:56, Simon Marchi wrote: > > On 2019-07-05 5:45 a.m., Alan Hayward wrote: >> Add Arm to the list of feature target description targets and generate the >> relevant C files. >> >> Add arm-m-profile-with-fpa.xml as the feature version of the exisiting >> arm-with-m-fpa-layout.xml. >> >> Add extra comments to the Makefile for readability. >> >> New files are not yet used. > > Hi Alan, > > Note that you'll need to re-generate these files following the renaming > of common to gdbsupport. It should not be a big deal though. > > However, when I try to re-generate the C files, I get this spurious diff: > > diff --git a/gdb/features/aarch64-pauth.c b/gdb/features/aarch64-pauth.c > index 931e6cb28410..7bd73a6b21d9 100644 > --- a/gdb/features/aarch64-pauth.c > +++ b/gdb/features/aarch64-pauth.c > @@ -11,6 +11,5 @@ create_feature_aarch64_pauth (struct target_desc *result, long regnum) > feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.pauth"); > tdesc_create_reg (feature, "pauth_dmask", regnum++, 1, NULL, 64, "int"); > tdesc_create_reg (feature, "pauth_cmask", regnum++, 1, NULL, 64, "int"); > - > return regnum; > } > > Do you see it too? If so, would you mind just pushing an obvious patch to > fix it? > Not quite sure how that happened. But fixed up now. > This patch LGTM, at least the features/Makefile and target-descriptions.c parts > (the arm parts look good too but I don't really know the specifics of the > architecture). > > Thanks. I pushed 1/7 because the changes were obvious. I regenerated this patch and pushed. Pasted below for reference. Alan. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6686a14c4b..0c2dca7c5d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2019-07-10 Alan Hayward + + * features/Makefile: Use feature target descriptions for Arm. + * features/arm/arm-core.c: Generate new file. + * features/arm/arm-fpa.c: Likewise. + * features/arm/arm-m-profile-with-fpa.xml: Likewise. + * features/arm/arm-m-profile.c: Likewise. + * features/arm/arm-vfpv2.c: Likewise. + * features/arm/arm-vfpv3.c: Likewise. + * features/arm/xscale-iwmmxt.c: Likewise. + * target-descriptions.c (maint_print_c_tdesc_cmd): Add Arm. + 2019-07-10 Alan Hayward * arm-linux-nat.c (arm_linux_nat_target::read_description): Check diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 3b57124b04..0c84faf405 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -38,11 +38,12 @@ # # make GDB=/path/to/gdb clean-cfiles cfiles # -# To generate specific C files, you can override the XMLTOC make -# variable: +# To generate specific C files, you can override the XMLTOC and +# FEATURE_XMLFILES make variables: # -# make GDB=/path/to/gdb XMLTOC="xml files" cfiles +# make GDB=/path/to/gdb XMLTOC="xml files" FEATURE_XMLFILES="xml files" cfiles +# List of .dat files to create in ../regformats/ WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \ arm/arm-with-neon \ mips-linux mips-dsp-linux \ @@ -103,20 +104,14 @@ XSLTPROC = xsltproc outdir = ../regformats OUTPUTS = $(patsubst %,$(outdir)/%.dat,$(WHICH)) -# The set of xml files we'll generate .c files for GDB from. By +# For targets without feature based target descriptions, +# the set of xml files we'll generate .c files for GDB from. By # default we'll build all .c files, which requires an # --enable-targets=all GDB. You can override this by passing XMLTOC # to make on the command line. XMLTOC = \ arc-v2.xml \ arc-arcompact.xml \ - arm/arm-with-iwmmxt.xml \ - arm/arm-with-m-fpa-layout.xml \ - arm/arm-with-m-vfp-d16.xml \ - arm/arm-with-m.xml \ - arm/arm-with-neon.xml \ - arm/arm-with-vfpv2.xml \ - arm/arm-with-vfpv3.xml \ microblaze-with-stack-protect.xml \ microblaze.xml \ mips-dsp-linux.xml \ @@ -189,6 +184,7 @@ GDB = false #Targets which use feature based target descriptions. aarch64-feature = 1 +arm-feature = 1 i386-feature = 1 riscv-feature = 1 tic6x-feature = 1 @@ -208,9 +204,18 @@ $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl $(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp sh ../../move-if-change $(outdir)/$*.tmp $(outdir)/$*.dat +# For targets with feature based target descriptions, +# the set of xml files we'll generate .c files for GDB from. FEATURE_XMLFILES = aarch64-core.xml \ aarch64-fpu.xml \ aarch64-pauth.xml \ + arm/arm-core.xml \ + arm/arm-fpa.xml \ + arm/arm-m-profile.xml \ + arm/arm-m-profile-with-fpa.xml \ + arm/arm-vfpv2.xml \ + arm/arm-vfpv3.xml \ + arm/xscale-iwmmxt.xml \ i386/32bit-core.xml \ i386/32bit-sse.xml \ i386/32bit-linux.xml \ @@ -263,9 +268,6 @@ $(FEATURE_CFILES): %.c: %.xml.tmp echo "" >> $@.tmp sh ../../move-if-change $@.tmp $@ -# Other dependencies. -$(outdir)/arm/arm-with-iwmmxt.dat: arm/arm-core.xml arm/xscale-iwmmxt.xml - # Regenerate RISC-V CSR feature lists. riscv/32bit-csr.xml riscv/64bit-csr.xml: ../../include/opcode/riscv-opc.h ./riscv/rebuild-csr-xml.sh ../../include/opcode/riscv-opc.h ./riscv diff --git a/gdb/features/arm/arm-core.c b/gdb/features/arm/arm-core.c new file mode 100644 index 0000000000..e401411fc5 --- /dev/null +++ b/gdb/features/arm/arm-core.c @@ -0,0 +1,31 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-core.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_core (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core"); + tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "lr", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); + regnum = 25; + tdesc_create_reg (feature, "cpsr", regnum++, 1, NULL, 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/arm-fpa.c b/gdb/features/arm/arm-fpa.c new file mode 100644 index 0000000000..65a49f5f3f --- /dev/null +++ b/gdb/features/arm/arm-fpa.c @@ -0,0 +1,23 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-fpa.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_fpa (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.fpa"); + regnum = 16; + tdesc_create_reg (feature, "f0", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f1", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f2", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f3", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f4", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f5", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f6", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "f7", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "fps", regnum++, 1, NULL, 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/arm-m-profile-with-fpa.c b/gdb/features/arm/arm-m-profile-with-fpa.c new file mode 100644 index 0000000000..2b7c78597b --- /dev/null +++ b/gdb/features/arm/arm-m-profile-with-fpa.c @@ -0,0 +1,39 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-m-profile-with-fpa.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_m_profile_with_fpa (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile"); + tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "lr", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 96, "arm_fpa_ext"); + tdesc_create_reg (feature, "", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "xpsr", regnum++, 1, NULL, 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/arm-m-profile-with-fpa.xml b/gdb/features/arm/arm-m-profile-with-fpa.xml new file mode 100644 index 0000000000..91e183c2dc --- /dev/null +++ b/gdb/features/arm/arm-m-profile-with-fpa.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/features/arm/arm-m-profile.c b/gdb/features/arm/arm-m-profile.c new file mode 100644 index 0000000000..027f3c15c5 --- /dev/null +++ b/gdb/features/arm/arm-m-profile.c @@ -0,0 +1,31 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-m-profile.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_m_profile (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile"); + tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "lr", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); + regnum = 25; + tdesc_create_reg (feature, "xpsr", regnum++, 1, NULL, 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/arm-vfpv2.c b/gdb/features/arm/arm-vfpv2.c new file mode 100644 index 0000000000..d6f8e79212 --- /dev/null +++ b/gdb/features/arm/arm-vfpv2.c @@ -0,0 +1,30 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-vfpv2.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_vfpv2 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp"); + tdesc_create_reg (feature, "d0", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d1", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d2", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d3", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d4", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d5", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d6", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d7", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d8", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d9", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d10", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d11", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d12", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d13", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d14", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d15", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "fpscr", regnum++, 1, "float", 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/arm-vfpv3.c b/gdb/features/arm/arm-vfpv3.c new file mode 100644 index 0000000000..b5ef4bae14 --- /dev/null +++ b/gdb/features/arm/arm-vfpv3.c @@ -0,0 +1,46 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arm-vfpv3.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_arm_vfpv3 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp"); + tdesc_create_reg (feature, "d0", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d1", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d2", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d3", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d4", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d5", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d6", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d7", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d8", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d9", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d10", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d11", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d12", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d13", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d14", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d15", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d16", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d17", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d18", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d19", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d20", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d21", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d22", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d23", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d24", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d25", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d26", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d27", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d28", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d29", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d30", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "d31", regnum++, 1, NULL, 64, "ieee_double"); + tdesc_create_reg (feature, "fpscr", regnum++, 1, "float", 32, "int"); + return regnum; +} diff --git a/gdb/features/arm/xscale-iwmmxt.c b/gdb/features/arm/xscale-iwmmxt.c new file mode 100644 index 0000000000..797fb9190a --- /dev/null +++ b/gdb/features/arm/xscale-iwmmxt.c @@ -0,0 +1,57 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: xscale-iwmmxt.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arm_xscale_iwmmxt (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.xscale.iwmmxt"); + tdesc_type *element_type; + element_type = tdesc_named_type (feature, "uint8"); + tdesc_create_vector (feature, "iwmmxt_v8u8", element_type, 8); + + element_type = tdesc_named_type (feature, "uint16"); + tdesc_create_vector (feature, "iwmmxt_v4u16", element_type, 4); + + element_type = tdesc_named_type (feature, "uint32"); + tdesc_create_vector (feature, "iwmmxt_v2u32", element_type, 2); + + tdesc_type_with_fields *type_with_fields; + type_with_fields = tdesc_create_union (feature, "iwmmxt_vec64i"); + tdesc_type *field_type; + field_type = tdesc_named_type (feature, "iwmmxt_v8u8"); + tdesc_add_field (type_with_fields, "u8", field_type); + field_type = tdesc_named_type (feature, "iwmmxt_v4u16"); + tdesc_add_field (type_with_fields, "u16", field_type); + field_type = tdesc_named_type (feature, "iwmmxt_v2u32"); + tdesc_add_field (type_with_fields, "u32", field_type); + field_type = tdesc_named_type (feature, "uint64"); + tdesc_add_field (type_with_fields, "u64", field_type); + + tdesc_create_reg (feature, "wR0", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR1", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR2", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR3", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR4", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR5", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR6", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR7", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR8", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR9", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR10", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR11", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR12", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR13", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR14", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wR15", regnum++, 1, NULL, 64, "iwmmxt_vec64i"); + tdesc_create_reg (feature, "wCSSF", regnum++, 1, "vector", 32, "int"); + tdesc_create_reg (feature, "wCASF", regnum++, 1, "vector", 32, "int"); + tdesc_create_reg (feature, "wCGR0", regnum++, 1, "vector", 32, "int"); + tdesc_create_reg (feature, "wCGR1", regnum++, 1, "vector", 32, "int"); + tdesc_create_reg (feature, "wCGR2", regnum++, 1, "vector", 32, "int"); + tdesc_create_reg (feature, "wCGR3", regnum++, 1, "vector", 32, "int"); + return regnum; +} diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index f422f2c14c..322ed509b1 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -1715,7 +1715,8 @@ maint_print_c_tdesc_cmd (const char *args, int from_tty) || startswith (filename_after_features.c_str (), "i386/x32-core.xml") || startswith (filename_after_features.c_str (), "riscv/") || startswith (filename_after_features.c_str (), "tic6x-") - || startswith (filename_after_features.c_str (), "aarch64")) + || startswith (filename_after_features.c_str (), "aarch64") + || startswith (filename_after_features.c_str (), "arm/")) { print_c_feature v (filename_after_features);