From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by server2.sourceware.org (Postfix) with ESMTPS id C866A393FC25 for ; Sat, 7 Mar 2020 23:54:28 +0000 (GMT) Received: by mail-wr1-x442.google.com with SMTP id v4so6633658wrs.8 for ; Sat, 07 Mar 2020 15:54:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=e6ELzpToOU251TYNePhJXGukGpAHxfMKs1EZnT9TCd4=; b=LgZjVePhwddmzLQbC8G69paQm+5Dczmq3y6jRwoo6FZgRU3cNIbeAe+j272qUmqxRg 7qJhK95HUH3FxgDhfp0azg0V5tiPXZZsuadOoGhHpqh5lCxe7uVQVhhD43IrPstQH5lB V/LP4puVATPxXSogyTxn0CFxd1wPPm2NMJd448fj/I7jH7oKv9FKVcHlE9vXrNxGe67c Ekjxa/A6xopK7nP7vCgLWhUfuh0irLhcmBimeuVNj8RbtfAl/CkzPuqjMGzxRW6W9RX3 lEvJRVcO4qK8KvZBS8RmUuOfezgJRFLydWAtJvErCvdRGiVzQlVOx6NdJ4uLtymtK1tL MVJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=e6ELzpToOU251TYNePhJXGukGpAHxfMKs1EZnT9TCd4=; b=MLRM86wJpch8iNI7uk7iUWLhprd4dKnuEpbfSdMRSfD6M72h7ZNUzgqEbFqbZIBduT 7y1mwGWZLY6juBLi9FeX6cn8V2Jnxgx9lCGLht4Ri1l6SdyUIvB2i6syux+vX5UTehLT V4jZY+3wYLswzOFjSz5S/bWK6mEFYz779kJsVa5U8poQNYaq4ZvvolbB99ZQRfabEeal MMfY6Or0Ol92k9Hqb8EgSkSPdrUzKNBtF11GIxL9Wf5ZFmOPtPVdxStLRoOfHDjlgjHj sb50I3I8X4Bvd+n7J8PVWNSS5ATOXYRb7De8c3WCtp3x5boBKdV3hdO581JKYyFYq29e /bJw== X-Gm-Message-State: ANhLgQ1x/BTUhFtV594ROGECFFzvWIPkfoYZHddt6brIEncl5+irXx88 +3nVTRaMmGnJSgqV1oiHtubECMxi57xOJg== X-Google-Smtp-Source: ADFU+vso0c/iEMRmfSJPVmjnuRfcIb1m7CQSI5TOpGGIczlB7bfHnuZn5qsLQSAys+IaXWJvBDsYxg== X-Received: by 2002:adf:fdc2:: with SMTP id i2mr12142228wrs.166.1583625266008; Sat, 07 Mar 2020 15:54:26 -0800 (PST) Received: from atlantis.home ([2a03:1b20:3:f011::6d]) by smtp.gmail.com with ESMTPSA id b5sm12758465wrj.1.2020.03.07.15.54.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 07 Mar 2020 15:54:25 -0800 (PST) From: Shahab Vahedi To: gdb-patches@sourceware.org Cc: Shahab Vahedi , Shahab Vahedi , Anton Kolesov , Simon Marchi , Francois Bedard , Anton Kolesov Subject: [PATCH v2] arc: Migrate to new target features Date: Sun, 8 Mar 2020 00:54:22 +0100 Message-Id: <20200307235422.13489-1-shahab.vahedi@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200305160552.29193-1-shahab.vahedi@gmail.com> References: <20200305160552.29193-1-shahab.vahedi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-27.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Sat, 07 Mar 2020 23:54:31 -0000 From: Anton Kolesov This patch replaces usage of target descriptions in ARC, where the whole description is fixed in XML, with new target descriptions where XML describes individual features, and GDB assembles those features into actual target description. gdb/ChangeLog: 2017-10-25 Anton Kolesov Shahab Vahedi * Makefile.in: Add arch/arc.o * configure.tgt: Likewise. * arc-tdep.c (arc_tdesc_init): Use arc_create_target_description. (_initialize_arc_tdep): Don't initialize old target descriptions. * arch/arc.c: New file. * arch/arc.h: Likewise. * features/Makefile: Replace old target descriptions with new. * features/arc-arcompact.c: Remove. * features/arc-arcompact.xml: Likewise. * features/arc-v2.c: Likewise * features/arc-v2.xml: Likewise * features/arc/aux-arcompact.xml: New file. * features/arc/aux-v2.xml: Likewise. * features/arc/core-arcompact.xml: Likewise. * features/arc/core-v2.xml: Likewise. * features/arc/aux-arcompact.c: Generate. * features/arc/aux-v2.c: Likewise. * features/arc/core-arcompact.c: Likewise. * features/arc/core-v2.c: Likewise. * target-descriptions (maint_print_c_tdesc_cmd): Support ARC features. --- gdb/Makefile.in | 2 + gdb/arc-tdep.c | 32 ++-------- gdb/arch/arc.c | 65 ++++++++++++++++++++ gdb/arch/arc.h | 20 +++++++ gdb/configure.tgt | 2 +- gdb/features/Makefile | 6 +- gdb/features/arc-arcompact.c | 74 ----------------------- gdb/features/arc-arcompact.xml | 85 -------------------------- gdb/features/arc-v2.c | 78 ------------------------ gdb/features/arc-v2.xml | 92 ----------------------------- gdb/features/arc/aux-arcompact.c | 31 ++++++++++ gdb/features/arc/aux-arcompact.xml | 28 +++++++++ gdb/features/arc/aux-v2.c | 35 +++++++++++ gdb/features/arc/aux-v2.xml | 32 ++++++++++ gdb/features/arc/core-arcompact.c | 47 +++++++++++++++ gdb/features/arc/core-arcompact.xml | 58 ++++++++++++++++++ gdb/features/arc/core-v2.c | 47 +++++++++++++++ gdb/features/arc/core-v2.xml | 61 +++++++++++++++++++ gdb/target-descriptions.c | 3 +- 19 files changed, 439 insertions(+), 359 deletions(-) create mode 100644 gdb/arch/arc.c create mode 100644 gdb/arch/arc.h delete mode 100644 gdb/features/arc-arcompact.c delete mode 100644 gdb/features/arc-arcompact.xml delete mode 100644 gdb/features/arc-v2.c delete mode 100644 gdb/features/arc-v2.xml create mode 100644 gdb/features/arc/aux-arcompact.c create mode 100644 gdb/features/arc/aux-arcompact.xml create mode 100644 gdb/features/arc/aux-v2.c create mode 100644 gdb/features/arc/aux-v2.xml create mode 100644 gdb/features/arc/core-arcompact.c create mode 100644 gdb/features/arc/core-arcompact.xml create mode 100644 gdb/features/arc/core-v2.c create mode 100644 gdb/features/arc/core-v2.xml diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 7c0a0aefbc2..532b17c6310 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -694,6 +694,7 @@ ALL_TARGET_OBS = \ aarch32-tdep.o \ arc-tdep.o \ arch/aarch32.o \ + arch/arc.o \ arch/arm.o \ arch/arm-get-next-pcs.o \ arch/arm-linux.o \ @@ -1438,6 +1439,7 @@ HFILES_NO_SRCDIR = \ arch/aarch32.h \ arch/aarch64.h \ arch/aarch64-insn.h \ + arch/arc.h \ arch/arm.h \ arch/i386.h \ arch/ppc-linux-common.h \ diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index ac98f03efc1..93ab9d1e90d 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -28,21 +28,20 @@ #include "gdbcore.h" #include "gdbcmd.h" #include "objfiles.h" +#include "osabi.h" #include "prologue-value.h" +#include "target-descriptions.h" #include "trad-frame.h" /* ARC header files. */ #include "opcode/arc.h" #include "opcodes/arc-dis.h" #include "arc-tdep.h" +#include "arch/arc.h" /* Standard headers. */ #include -/* Default target descriptions. */ -#include "features/arc-v2.c" -#include "features/arc-arcompact.c" - /* The frame unwind cache for ARC. */ struct arc_frame_cache @@ -1752,25 +1751,9 @@ arc_tdesc_init (struct gdbarch_info info, const struct target_desc **tdesc, /* If target doesn't provide a description - use default one. */ if (!tdesc_has_registers (tdesc_loc)) - { - if (is_arcv2) - { - tdesc_loc = tdesc_arc_v2; - if (arc_debug) - debug_printf ("arc: Using default register set for ARC v2.\n"); - } - else - { - tdesc_loc = tdesc_arc_arcompact; - if (arc_debug) - debug_printf ("arc: Using default register set for ARCompact.\n"); - } - } - else - { - if (arc_debug) - debug_printf ("arc: Using provided register set.\n"); - } + tdesc_loc = arc_create_target_description (arc_debug, is_arcv2); + else if (arc_debug) + debug_printf ("arc: Using provided register set.\n"); gdb_assert (tdesc_loc != NULL); /* Now we can search for base registers. Core registers can be either full @@ -2151,9 +2134,6 @@ _initialize_arc_tdep () { gdbarch_register (bfd_arch_arc, arc_gdbarch_init, arc_dump_tdep); - initialize_tdesc_arc_v2 (); - initialize_tdesc_arc_arcompact (); - /* Register ARC-specific commands with gdb. */ /* Add root prefix command for "maintenance print arc" commands. */ diff --git a/gdb/arch/arc.c b/gdb/arch/arc.c new file mode 100644 index 00000000000..b04d317d6b0 --- /dev/null +++ b/gdb/arch/arc.c @@ -0,0 +1,65 @@ +/* Copyright (C) 2017-2020 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + + +#include "gdbsupport/common-defs.h" +#include + +#include "arc.h" + +/* Target description features. */ +#include "features/arc/core-v2.c" +#include "features/arc/aux-v2.c" +#include "features/arc/core-arcompact.c" +#include "features/arc/aux-arcompact.c" + +/* Create target description for a target with specified parameters. + PRINT_DEBUG defines whether to print debug messages to the stderr stream. + IS_ARCV2 defines if this is an ARCv2 (ARC EM or ARC HS) target or ARCompact + (ARC600 or ARC700); there is no use for more specific information about + target processor. */ + +target_desc * +arc_create_target_description (bool print_debug, bool is_arcv2) +{ + target_desc *tdesc = allocate_target_description (); + + if (print_debug) + debug_printf ("arc: Creating target description, is_arcv2=%i\n", is_arcv2); + + long regnum = 0; + +#ifndef IN_PROCESS_AGENT + if (is_arcv2) + set_tdesc_architecture (tdesc, "arc:ARCv2"); + else + set_tdesc_architecture (tdesc, "arc:ARC700"); +#endif + + if (is_arcv2) + { + regnum = create_feature_arc_core_v2 (tdesc, regnum); + regnum = create_feature_arc_aux_v2 (tdesc, regnum); + } + else + { + regnum = create_feature_arc_core_arcompact (tdesc, regnum); + regnum = create_feature_arc_aux_arcompact (tdesc, regnum); + } + + return tdesc; +} diff --git a/gdb/arch/arc.h b/gdb/arch/arc.h new file mode 100644 index 00000000000..dc7871c3103 --- /dev/null +++ b/gdb/arch/arc.h @@ -0,0 +1,20 @@ +/* Copyright (C) 2017-2020 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include "gdbsupport/tdesc.h" + +target_desc *arc_create_target_description (bool print_debug, bool is_arcv2); diff --git a/gdb/configure.tgt b/gdb/configure.tgt index 755187dca65..9b77a2872ca 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -59,7 +59,7 @@ alpha*-*-*) arc*-*-*) # Target: Unidentified ARC target - cpu_obs="arc-tdep.o" + cpu_obs="arc-tdep.o arch/arc.o" ;; arm*-*-*) diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 9a98b0542c4..cc65baa6eda 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -108,8 +108,6 @@ OUTPUTS = $(patsubst %,$(outdir)/%.dat,$(WHICH)) # --enable-targets=all GDB. You can override this by passing XMLTOC # to make on the command line. XMLTOC = \ - arc-v2.xml \ - arc-arcompact.xml \ microblaze-with-stack-protect.xml \ microblaze.xml \ mips-dsp-linux.xml \ @@ -206,6 +204,10 @@ $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl FEATURE_XMLFILES = aarch64-core.xml \ aarch64-fpu.xml \ aarch64-pauth.xml \ + arc/core-v2.xml \ + arc/aux-v2.xml \ + arc/core-arcompact.xml \ + arc/aux-arcompact.xml \ arm/arm-core.xml \ arm/arm-fpa.xml \ arm/arm-m-profile.xml \ diff --git a/gdb/features/arc-arcompact.c b/gdb/features/arc-arcompact.c deleted file mode 100644 index f81f0a26ba2..00000000000 --- a/gdb/features/arc-arcompact.c +++ /dev/null @@ -1,74 +0,0 @@ -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: - Original: arc-arcompact.xml */ - -#include "defs.h" -#include "osabi.h" -#include "target-descriptions.h" - -struct target_desc *tdesc_arc_arcompact; -static void -initialize_tdesc_arc_arcompact (void) -{ - struct target_desc *result = allocate_target_description (); - set_tdesc_architecture (result, bfd_scan_arch ("ARC700")); - - struct tdesc_feature *feature; - - feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.arcompact"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "ilink1", 29, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "ilink2", 30, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); - tdesc_create_reg (feature, "pcl", 33, 1, NULL, 32, "code_ptr"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); - tdesc_type_with_fields *type_with_fields; - type_with_fields = tdesc_create_flags (feature, "status32_type", 4); - tdesc_add_flag (type_with_fields, 0, "H"); - tdesc_add_bitfield (type_with_fields, "E", 1, 2); - tdesc_add_bitfield (type_with_fields, "A", 3, 4); - tdesc_add_flag (type_with_fields, 5, "AE"); - tdesc_add_flag (type_with_fields, 6, "DE"); - tdesc_add_flag (type_with_fields, 7, "U"); - tdesc_add_flag (type_with_fields, 8, "V"); - tdesc_add_flag (type_with_fields, 9, "C"); - tdesc_add_flag (type_with_fields, 10, "N"); - tdesc_add_flag (type_with_fields, 11, "Z"); - tdesc_add_flag (type_with_fields, 12, "L"); - tdesc_add_flag (type_with_fields, 13, "R"); - tdesc_add_flag (type_with_fields, 14, "SE"); - - tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type"); - - tdesc_arc_arcompact = result; -} diff --git a/gdb/features/arc-arcompact.xml b/gdb/features/arc-arcompact.xml deleted file mode 100644 index 31acbaf9398..00000000000 --- a/gdb/features/arc-arcompact.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - arc:ARC700 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gdb/features/arc-v2.c b/gdb/features/arc-v2.c deleted file mode 100644 index b2254b293cf..00000000000 --- a/gdb/features/arc-v2.c +++ /dev/null @@ -1,78 +0,0 @@ -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: - Original: arc-v2.xml */ - -#include "defs.h" -#include "osabi.h" -#include "target-descriptions.h" - -struct target_desc *tdesc_arc_v2; -static void -initialize_tdesc_arc_v2 (void) -{ - struct target_desc *result = allocate_target_description (); - set_tdesc_architecture (result, bfd_scan_arch ("ARCv2")); - - struct tdesc_feature *feature; - - feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); - tdesc_create_reg (feature, "ilink", 29, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); - tdesc_create_reg (feature, "pcl", 33, 1, NULL, 32, "code_ptr"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); - tdesc_type_with_fields *type_with_fields; - type_with_fields = tdesc_create_flags (feature, "status32_type", 4); - tdesc_add_flag (type_with_fields, 0, "H"); - tdesc_add_bitfield (type_with_fields, "E", 1, 4); - tdesc_add_flag (type_with_fields, 5, "AE"); - tdesc_add_flag (type_with_fields, 6, "DE"); - tdesc_add_flag (type_with_fields, 7, "U"); - tdesc_add_flag (type_with_fields, 8, "V"); - tdesc_add_flag (type_with_fields, 9, "C"); - tdesc_add_flag (type_with_fields, 10, "N"); - tdesc_add_flag (type_with_fields, 11, "Z"); - tdesc_add_flag (type_with_fields, 12, "L"); - tdesc_add_flag (type_with_fields, 13, "DZ"); - tdesc_add_flag (type_with_fields, 14, "SC"); - tdesc_add_flag (type_with_fields, 15, "ES"); - tdesc_add_bitfield (type_with_fields, "RB", 16, 18); - tdesc_add_flag (type_with_fields, 19, "AD"); - tdesc_add_flag (type_with_fields, 20, "US"); - tdesc_add_flag (type_with_fields, 31, "IE"); - - tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); - tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type"); - - tdesc_arc_v2 = result; -} diff --git a/gdb/features/arc-v2.xml b/gdb/features/arc-v2.xml deleted file mode 100644 index 2dae670158c..00000000000 --- a/gdb/features/arc-v2.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - arc:ARCv2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gdb/features/arc/aux-arcompact.c b/gdb/features/arc/aux-arcompact.c new file mode 100644 index 00000000000..d8e8c74e639 --- /dev/null +++ b/gdb/features/arc/aux-arcompact.c @@ -0,0 +1,31 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: aux-arcompact.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arc_aux_arcompact (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); + tdesc_type_with_fields *type_with_fields; + type_with_fields = tdesc_create_flags (feature, "status32_type", 4); + tdesc_add_flag (type_with_fields, 0, "H"); + tdesc_add_bitfield (type_with_fields, "E", 1, 2); + tdesc_add_bitfield (type_with_fields, "A", 3, 4); + tdesc_add_flag (type_with_fields, 5, "AE"); + tdesc_add_flag (type_with_fields, 6, "DE"); + tdesc_add_flag (type_with_fields, 7, "U"); + tdesc_add_flag (type_with_fields, 8, "V"); + tdesc_add_flag (type_with_fields, 9, "C"); + tdesc_add_flag (type_with_fields, 10, "N"); + tdesc_add_flag (type_with_fields, 11, "Z"); + tdesc_add_flag (type_with_fields, 12, "L"); + tdesc_add_flag (type_with_fields, 13, "R"); + tdesc_add_flag (type_with_fields, 14, "SE"); + + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "status32", regnum++, 1, NULL, 32, "status32_type"); + return regnum; +} diff --git a/gdb/features/arc/aux-arcompact.xml b/gdb/features/arc/aux-arcompact.xml new file mode 100644 index 00000000000..bf68112f5db --- /dev/null +++ b/gdb/features/arc/aux-arcompact.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/features/arc/aux-v2.c b/gdb/features/arc/aux-v2.c new file mode 100644 index 00000000000..6290b9b1a7f --- /dev/null +++ b/gdb/features/arc/aux-v2.c @@ -0,0 +1,35 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: aux-v2.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arc_aux_v2 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); + tdesc_type_with_fields *type_with_fields; + type_with_fields = tdesc_create_flags (feature, "status32_type", 4); + tdesc_add_flag (type_with_fields, 0, "H"); + tdesc_add_bitfield (type_with_fields, "E", 1, 4); + tdesc_add_flag (type_with_fields, 5, "AE"); + tdesc_add_flag (type_with_fields, 6, "DE"); + tdesc_add_flag (type_with_fields, 7, "U"); + tdesc_add_flag (type_with_fields, 8, "V"); + tdesc_add_flag (type_with_fields, 9, "C"); + tdesc_add_flag (type_with_fields, 10, "N"); + tdesc_add_flag (type_with_fields, 11, "Z"); + tdesc_add_flag (type_with_fields, 12, "L"); + tdesc_add_flag (type_with_fields, 13, "DZ"); + tdesc_add_flag (type_with_fields, 14, "SC"); + tdesc_add_flag (type_with_fields, 15, "ES"); + tdesc_add_bitfield (type_with_fields, "RB", 16, 18); + tdesc_add_flag (type_with_fields, 19, "AD"); + tdesc_add_flag (type_with_fields, 20, "US"); + tdesc_add_flag (type_with_fields, 31, "IE"); + + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "status32", regnum++, 1, NULL, 32, "status32_type"); + return regnum; +} diff --git a/gdb/features/arc/aux-v2.xml b/gdb/features/arc/aux-v2.xml new file mode 100644 index 00000000000..2701fad72dc --- /dev/null +++ b/gdb/features/arc/aux-v2.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/features/arc/core-arcompact.c b/gdb/features/arc/core-arcompact.c new file mode 100644 index 00000000000..7d9a4b23c21 --- /dev/null +++ b/gdb/features/arc/core-arcompact.c @@ -0,0 +1,47 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: core-arcompact.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arc_core_arcompact (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.arcompact"); + 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, "r13", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "gp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "fp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "ilink1", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "ilink2", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "blink", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "lp_count", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "pcl", regnum++, 1, NULL, 32, "code_ptr"); + return regnum; +} diff --git a/gdb/features/arc/core-arcompact.xml b/gdb/features/arc/core-arcompact.xml new file mode 100644 index 00000000000..9209891b41a --- /dev/null +++ b/gdb/features/arc/core-arcompact.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/features/arc/core-v2.c b/gdb/features/arc/core-v2.c new file mode 100644 index 00000000000..d37da990457 --- /dev/null +++ b/gdb/features/arc/core-v2.c @@ -0,0 +1,47 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: core-v2.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_arc_core_v2 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2"); + 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, "r13", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "gp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "fp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "ilink", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "r30", regnum++, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "blink", regnum++, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "lp_count", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "pcl", regnum++, 1, NULL, 32, "code_ptr"); + return regnum; +} diff --git a/gdb/features/arc/core-v2.xml b/gdb/features/arc/core-v2.xml new file mode 100644 index 00000000000..1b17968fb2e --- /dev/null +++ b/gdb/features/arc/core-v2.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 04711ba2fa5..4194819d9ab 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 (), "riscv/") || startswith (filename_after_features.c_str (), "tic6x-") || startswith (filename_after_features.c_str (), "aarch64") - || startswith (filename_after_features.c_str (), "arm/")) + || startswith (filename_after_features.c_str (), "arm/") + || startswith (filename_after_features.c_str (), "arc/")) { print_c_feature v (filename_after_features); -- 2.25.1