From patchwork Thu Nov 16 13:03:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 24291 Received: (qmail 60355 invoked by alias); 16 Nov 2017 13:04:09 -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 60345 invoked by uid 89); 16 Nov 2017 13:04:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, KB_WAM_FROM_NAME_SINGLEWORD, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=b20, Hx-spam-relays-external:74.125.82.68, A19, a19 X-HELO: mail-wm0-f68.google.com Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com) (74.125.82.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 16 Nov 2017 13:04:04 +0000 Received: by mail-wm0-f68.google.com with SMTP id z3so9606005wme.3 for ; Thu, 16 Nov 2017 05:04:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=+fqdCwU3uK33/1YMb7JwHWpJZaL52ZLPiGxajTdoIug=; b=bVw/QJb2o6JeczJsyMY6ESYwWtLv3XSDQPs7Jy/UeEuAdUWYvETPrDpa26Del8eTRA fy8Qu9SiRN7hJFfHHefCEHxANYxQr+pHXgJAY0uJrSNwvkaiSIGTO5wgZ7qR4STCBWBQ yY1x8+byxbUiksMNGZz9s6UANHI4bo0dZVV1JFk5WBLeLlYNiX5Df0JeCEzHmj5rSwhD sOoY7kGSRrG/XQ18YUI45Iwu+AssfxmgHvBxWQoOuSwRfiv/igNCQFbqv1a6e0gDTumT Ml2d8IU+wWA8FM3hBEBG9NduWpUUvrYVb4XH2WTjKjVN+ZmmZvrhG6VV+QJNHsXzMPCl jPgg== X-Gm-Message-State: AJaThX5QzUuaKp9kI+ZiTDAO4kdNdZv7Oi5Xl67LSO2pQWmXR11P8f/Q xZyLYvwZHKvUxSNEv1hXCXODeQ== X-Google-Smtp-Source: AGs4zMbydBkEHy4LRcvz7n1NqBVNk46fkZTw0b2u8NpRwPy2Nh9NgfyAVwUTmcOcCCR8ybFnUQvFzg== X-Received: by 10.28.11.20 with SMTP id 20mr1626312wml.42.1510837441647; Thu, 16 Nov 2017 05:04:01 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id e131sm2151573wmg.1.2017.11.16.05.04.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 16 Nov 2017 05:04:01 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH] Change tic6x target descriptions Date: Thu, 16 Nov 2017 13:03:57 +0000 Message-Id: <1510837437-24927-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes This patch changes tic6x target descriptions to be more flexible. Rebuild tic6x-uclinux GDBserver with my x86 g++, and the unit test passes. gdb: 2017-11-16 Yao Qi * arch/tic6x.c: New file. * arch/tic6x.h: New file. * features/Makefile (FEATURE_XMLFILES): Add tic6x-c6xp.xml, tic6x-core.xml and tic6x-gp.xml. * features/tic6x-c6xp.c: Generated. * features/tic6x-core.c: Generated. * features/tic6x-gp.c: Generated. * target-descriptions.c (maint_print_c_tdesc_cmd): Match "tic6x-". gdb/gdbserver: 2017-11-16 Yao Qi * configure.srv: Set $srv_regobj for tic6x-linux. * linux-tic6x-low.c: Include "arch/tic6x.h" and "tdesc.h". (tic6x_read_description): Move some code to tic6x_arch_setup. (tic6x_tdesc_test): New function. (initialize_low_arch): Call selftests::register_test. --- gdb/arch/tic6x.c | 47 ++++++++++++++++++ gdb/arch/tic6x.h | 26 ++++++++++ gdb/features/Makefile | 5 +- gdb/features/tic6x-c6xp.c | 16 ++++++ gdb/features/tic6x-core.c | 47 ++++++++++++++++++ gdb/features/tic6x-gp.c | 45 +++++++++++++++++ gdb/gdbserver/configure.srv | 14 +++--- gdb/gdbserver/linux-tic6x-low.c | 107 ++++++++++++++++++++++++++-------------- gdb/target-descriptions.c | 3 +- 9 files changed, 266 insertions(+), 44 deletions(-) create mode 100644 gdb/arch/tic6x.c create mode 100644 gdb/arch/tic6x.h create mode 100644 gdb/features/tic6x-c6xp.c create mode 100644 gdb/features/tic6x-core.c create mode 100644 gdb/features/tic6x-gp.c diff --git a/gdb/arch/tic6x.c b/gdb/arch/tic6x.c new file mode 100644 index 0000000..5355b88 --- /dev/null +++ b/gdb/arch/tic6x.c @@ -0,0 +1,47 @@ +/* Copyright (C) 2017 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 "tdesc.h" +#include "tic6x.h" +#include "common/common-defs.h" + +#include "../features/tic6x-core.c" +#include "../features/tic6x-gp.c" +#include "../features/tic6x-c6xp.c" + +/* Create tic6x target descriptions according to FEATURE. */ + +target_desc * +tic6x_create_target_description (enum c6x_feature feature) +{ + target_desc *tdesc = allocate_target_description (); + + set_tdesc_architecture (tdesc, "tic6x"); + set_tdesc_osabi (tdesc, "GNU/Linux"); + + long regnum = 0; + + regnum = create_feature_tic6x_core (tdesc, regnum); + + if (feature == C6X_GP || feature == C6X_C6XP) + regnum = create_feature_tic6x_gp (tdesc, regnum); + + if (feature == C6X_C6XP) + regnum = create_feature_tic6x_c6xp (tdesc, regnum); + + return tdesc; +} diff --git a/gdb/arch/tic6x.h b/gdb/arch/tic6x.h new file mode 100644 index 0000000..1575af0 --- /dev/null +++ b/gdb/arch/tic6x.h @@ -0,0 +1,26 @@ +/* Copyright (C) 2017 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 . */ + +enum c6x_feature +{ + C6X_CORE, + C6X_GP, + C6X_C6XP, + C6X_LAST, +}; + +target_desc *tic6x_create_target_description (enum c6x_feature feature); diff --git a/gdb/features/Makefile b/gdb/features/Makefile index b41d561..78a44ca 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -221,7 +221,10 @@ FEATURE_XMLFILES = i386/32bit-core.xml \ i386/64bit-linux.xml \ i386/64bit-pkeys.xml \ i386/64bit-sse.xml \ - i386/x32-core.xml + i386/x32-core.xml \ + tic6x-c6xp.xml \ + tic6x-core.xml \ + tic6x-gp.xml FEATURE_CFILES = $(patsubst %.xml,%.c,$(FEATURE_XMLFILES)) diff --git a/gdb/features/tic6x-c6xp.c b/gdb/features/tic6x-c6xp.c new file mode 100644 index 0000000..5b0f566 --- /dev/null +++ b/gdb/features/tic6x-c6xp.c @@ -0,0 +1,16 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: tic6x-c6xp.xml */ + +#include "arch/tdesc.h" + +static int +create_feature_tic6x_c6xp (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.c6xp", "tic6x-c6xp.xml"); + tdesc_create_reg (feature, "TSR", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "ILC", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "RILC", regnum++, 1, NULL, 32, "uint32"); + return regnum; +} diff --git a/gdb/features/tic6x-core.c b/gdb/features/tic6x-core.c new file mode 100644 index 0000000..823d4c1 --- /dev/null +++ b/gdb/features/tic6x-core.c @@ -0,0 +1,47 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: tic6x-core.xml */ + +#include "arch/tdesc.h" + +static int +create_feature_tic6x_core (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core", "tic6x-core.xml"); + tdesc_create_reg (feature, "A0", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A1", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A2", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A3", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A4", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A5", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A6", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A7", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A8", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A9", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A10", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A11", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A12", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A13", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A14", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A15", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B0", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B1", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B2", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B3", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B4", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B5", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B6", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B7", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B8", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B9", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B10", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B11", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B12", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B13", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B14", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B15", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "CSR", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "PC", regnum++, 1, NULL, 32, "code_ptr"); + return regnum; +} diff --git a/gdb/features/tic6x-gp.c b/gdb/features/tic6x-gp.c new file mode 100644 index 0000000..df0d0e3 --- /dev/null +++ b/gdb/features/tic6x-gp.c @@ -0,0 +1,45 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: tic6x-gp.xml */ + +#include "arch/tdesc.h" + +static int +create_feature_tic6x_gp (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp", "tic6x-gp.xml"); + tdesc_create_reg (feature, "A16", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A17", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A18", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A19", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A20", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A21", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A22", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A23", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A24", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A25", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A26", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A27", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A28", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A29", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A30", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "A31", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B16", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B17", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B18", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B19", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B20", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B21", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B22", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B23", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B24", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B25", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B26", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B27", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B28", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B29", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B30", regnum++, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "B31", regnum++, 1, NULL, 32, "uint32"); + return regnum; +} diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index 82c3dc2..f5fa5e6 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -356,16 +356,18 @@ case "${target}" in spu*-*-*) srv_regobj=reg-spu.o srv_tgtobj="spu-low.o fork-child.o fork-inferior.o" ;; - tic6x-*-uclinux) srv_regobj="tic6x-c64xp-linux.o" - srv_regobj="${srv_regobj} tic6x-c64x-linux.o" - srv_regobj="${srv_regobj} tic6x-c62x-linux.o" - srv_xmlfiles="tic6x-c64xp-linux.xml" - srv_xmlfiles="${srv_xmlfiles} tic6x-c64x-linux.xml" - srv_xmlfiles="${srv_xmlfiles} tic6x-c62x-linux.xml" + tic6x-*-uclinux) if $development; then + srv_regobj="tic6x-c64xp-linux.o" + srv_regobj="${srv_regobj} tic6x-c64x-linux.o" + srv_regobj="${srv_regobj} tic6x-c62x-linux.o" + else + srv_regobj="" + fi srv_xmlfiles="${srv_xmlfiles} tic6x-core.xml" srv_xmlfiles="${srv_xmlfiles} tic6x-gp.xml" srv_xmlfiles="${srv_xmlfiles} tic6x-c6xp.xml" srv_tgtobj="$srv_linux_obj linux-tic6x-low.o" + srv_tgtobj="${srv_tgtobj} arch/tic6x.o" srv_linux_regsets=yes srv_linux_usrregs=yes srv_linux_thread_db=yes diff --git a/gdb/gdbserver/linux-tic6x-low.c b/gdb/gdbserver/linux-tic6x-low.c index 6dda52e..7b6750a 100644 --- a/gdb/gdbserver/linux-tic6x-low.c +++ b/gdb/gdbserver/linux-tic6x-low.c @@ -21,6 +21,8 @@ #include "server.h" #include "linux-low.h" +#include "arch/tic6x.h" +#include "tdesc.h" #include "nat/gdb_ptrace.h" #include @@ -189,45 +191,21 @@ static struct usrregs_info tic6x_usrregs_info = }; static const struct target_desc * -tic6x_read_description (void) +tic6x_read_description (enum c6x_feature feature) { - register unsigned int csr asm ("B2"); - unsigned int cpuid; - const struct target_desc *tdesc; + static target_desc *tdescs[C6X_LAST] = { }; + struct target_desc **tdesc = &tdescs[feature]; - /* Determine the CPU we're running on to find the register order. */ - __asm__ ("MVC .S2 CSR,%0" : "=r" (csr) :); - cpuid = csr >> 24; - switch (cpuid) + if (*tdesc == NULL) { - case 0x00: /* C62x */ - case 0x02: /* C67x */ - tic6x_regmap = tic6x_regmap_c62x; - tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ - tdesc = tdesc_tic6x_c62x_linux; - break; - case 0x03: /* C67x+ */ - tic6x_regmap = tic6x_regmap_c64x; - tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ - tdesc = tdesc_tic6x_c64x_linux; - break; - case 0x0c: /* C64x */ - tic6x_regmap = tic6x_regmap_c64x; - tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ - tdesc = tdesc_tic6x_c64x_linux; - break; - case 0x10: /* C64x+ */ - case 0x14: /* C674x */ - case 0x15: /* C66x */ - tic6x_regmap = tic6x_regmap_c64xp; - tic6x_breakpoint = 0x56454314; /* illegal opcode */ - tdesc = tdesc_tic6x_c64xp_linux; - break; - default: - error ("Unknown CPU ID 0x%02x", cpuid); + *tdesc = tic6x_create_target_description (feature); + init_target_desc (*tdesc); + + static const char *expedite_regs[] = { "A15", "PC", NULL }; + (*tdesc)->expedite_regs = expedite_regs; } - tic6x_usrregs_info.regmap = tic6x_regmap; - return tdesc; + + return *tdesc; } static int @@ -341,7 +319,44 @@ static struct regset_info tic6x_regsets[] = { static void tic6x_arch_setup (void) { - current_process ()->tdesc = tic6x_read_description (); + register unsigned int csr asm ("B2"); + unsigned int cpuid; + enum c6x_feature feature = C6X_CORE; + + /* Determine the CPU we're running on to find the register order. */ + __asm__ ("MVC .S2 CSR,%0" : "=r" (csr) :); + cpuid = csr >> 24; + switch (cpuid) + { + case 0x00: /* C62x */ + case 0x02: /* C67x */ + tic6x_regmap = tic6x_regmap_c62x; + tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ + feature = C6X_CORE; + break; + case 0x03: /* C67x+ */ + tic6x_regmap = tic6x_regmap_c64x; + tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ + feature = C6X_GP; + break; + case 0x0c: /* C64x */ + tic6x_regmap = tic6x_regmap_c64x; + tic6x_breakpoint = 0x0000a122; /* BNOP .S2 0,5 */ + feature = C6X_GP; + break; + case 0x10: /* C64x+ */ + case 0x14: /* C674x */ + case 0x15: /* C66x */ + tic6x_regmap = tic6x_regmap_c64xp; + tic6x_breakpoint = 0x56454314; /* illegal opcode */ + feature = C6X_C6XP; + break; + default: + error ("Unknown CPU ID 0x%02x", cpuid); + } + tic6x_usrregs_info.regmap = tic6x_regmap; + + current_process ()->tdesc = tic6x_read_description (feature); } /* Support for hardware single step. */ @@ -410,13 +425,33 @@ struct linux_target_ops the_low_target = { tic6x_supports_hardware_single_step, }; +#if GDB_SELF_TEST +#include "common/selftest.h" + +namespace selftests { +namespace tdesc { +static void +tic6x_tdesc_test () +{ + SELF_CHECK (*tdesc_tic6x_c62x_linux == *tic6x_read_description (C6X_CORE)); + SELF_CHECK (*tdesc_tic6x_c64x_linux == *tic6x_read_description (C6X_GP)); + SELF_CHECK (*tdesc_tic6x_c64xp_linux == *tic6x_read_description (C6X_C6XP)); +} +} +} +#endif + void initialize_low_arch (void) { +#if GDB_SELF_TEST /* Initialize the Linux target descriptions. */ init_registers_tic6x_c64xp_linux (); init_registers_tic6x_c64x_linux (); init_registers_tic6x_c62x_linux (); + selftests::register_test ("tic6x-tdesc", selftests::tdesc::tic6x_tdesc_test); +#endif + initialize_regsets_info (&tic6x_regsets_info); } diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 3a5999c..1ba535f 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -2327,7 +2327,8 @@ maint_print_c_tdesc_cmd (const char *args, int from_tty) counterparts. */ if (startswith (filename_after_features.c_str (), "i386/32bit-") || startswith (filename_after_features.c_str (), "i386/64bit-") - || startswith (filename_after_features.c_str (), "i386/x32-core.xml")) + || startswith (filename_after_features.c_str (), "i386/x32-core.xml") + || startswith (filename_after_features.c_str (), "tic6x-")) { print_c_feature v (filename_after_features);