gdb/doc/
* gdb.texinfo (Standard Target Features): Document C6x features.
gdb/
* features/Makefile (WHICH): Add tic6x-c64xp-linux tic6x-c64x-linux
and tic6x-c62x-linux.
* features/tic6x-c6xp.xml: New.
* features/tic6x-core.xml: New.
* features/tic6x-gp.xml: New.
* features/tic6x-c62x-linux.xml: New.
* features/tic6x-c64x-linux.xml: New.
* features/tic6x-c64xp-linux.xml: New.
* features/tic6x-c64xp-linux.c: Generated.
* features/tic6x-c64x-linux.c: Generated.
* features/tic6x-c62x-linux.c: Generated.
* regformats/tic6x-c62x-linux.dat: Generated.
* regformats/tic6x-c64x-linux.dat: Generated.
* regformats/tic6x-c64xp-linux.dat: Generated.
* config/djgpp/fnchange.lst: Add features/tic6x-*.xml and
features/tic6x-*.c files.
Add regformats/tic6x-*-linux.dat files.
Add tic6x-tdep.c, tic6x-tdep.h and tic6x-linux-tdep.c.
---
gdb/config/djgpp/fnchange.lst | 9 +++
gdb/doc/gdb.texinfo | 16 ++++++
gdb/features/Makefile | 7 ++-
gdb/features/tic6x-c62x-linux.c | 56 ++++++++++++++++++++
gdb/features/tic6x-c62x-linux.xml | 13 +++++
gdb/features/tic6x-c64x-linux.c | 90 ++++++++++++++++++++++++++++++++
gdb/features/tic6x-c64x-linux.xml | 14 +++++
gdb/features/tic6x-c64xp-linux.c | 95 ++++++++++++++++++++++++++++++++++
gdb/features/tic6x-c64xp-linux.xml | 15 +++++
gdb/features/tic6x-c6xp.xml | 13 +++++
gdb/features/tic6x-core.xml | 44 ++++++++++++++++
gdb/features/tic6x-gp.xml | 42 +++++++++++++++
gdb/regformats/tic6x-c62x-linux.dat | 38 +++++++++++++
gdb/regformats/tic6x-c64x-linux.dat | 70 +++++++++++++++++++++++++
gdb/regformats/tic6x-c64xp-linux.dat | 73 ++++++++++++++++++++++++++
15 files changed, 593 insertions(+), 2 deletions(-)
create mode 100644 gdb/features/tic6x-c62x-linux.c
create mode 100644 gdb/features/tic6x-c62x-linux.xml
create mode 100644 gdb/features/tic6x-c64x-linux.c
create mode 100644 gdb/features/tic6x-c64x-linux.xml
create mode 100644 gdb/features/tic6x-c64xp-linux.c
create mode 100644 gdb/features/tic6x-c64xp-linux.xml
create mode 100644 gdb/features/tic6x-c6xp.xml
create mode 100644 gdb/features/tic6x-core.xml
create mode 100644 gdb/features/tic6x-gp.xml
create mode 100644 gdb/regformats/tic6x-c62x-linux.dat
create mode 100644 gdb/regformats/tic6x-c64x-linux.dat
create mode 100644 gdb/regformats/tic6x-c64xp-linux.dat
diff --git a/gdb/config/djgpp/fnchange.lst b/gdb/config/djgpp/fnchange.lst
index 4b86c31..71b79b3 100644
--- a/gdb/config/djgpp/fnchange.lst
+++ b/gdb/config/djgpp/fnchange.lst
@@ -240,6 +240,11 @@
@V@/gdb/features/i386/i386-mmx.c @V@/gdb/features/i386/i32-m.c
@V@/gdb/features/i386/i386-mmx-linux.xml @V@/gdb/features/i386/i32-ml.xml
@V@/gdb/features/i386/i386-mmx.xml @V@/gdb/features/i386/i32-m.xml
+@V@/gdb/features/tic6x-core.xml @V@/gdb/features/tic6x-gp.xml
+@V@/gdb/features/tic6x-c6xp.xml @V@/gdb/features/tic6x-c62x-linux.xml
+@V@/gdb/features/tic6x-c64x-linux.xml @V@/gdb/features/tic6x-c64xp-linux.xml
+@V@/gdb/features/tic6x-c64xp-linux.c @V@/gdb/features/tic6x-c64x-linux.c
+@V@/gdb/features/tic6x-c62x-linux.c
@V@/gdb/f-exp.tab.c @V@/gdb/f-exp_tab.c
@V@/gdb/gdbserver/linux-cris-low.c @V@/gdb/gdbserver/lx-cris.c
@V@/gdb/gdbserver/linux-crisv32-low.c @V@/gdb/gdbserver/lx-cris32.c
@@ -341,6 +346,8 @@
@V@/gdb/regformats/rs6000/powerpc-vsx64l.dat @V@/gdb/regformats/rs6000/ppc-v64l.dat
@V@/gdb/regformats/rs6000/powerpc-cell32l.dat @V@/gdb/regformats/rs6000/ppc-c32l.dat
@V@/gdb/regformats/rs6000/powerpc-cell64l.dat @V@/gdb/regformats/rs6000/ppc-c64l.dat
+@V@/gdb/regformats/tic6x-c62x-linux.dat @V@/gdb/regformats/tic6x-c64x-linux.dat
+@V@/gdb/regformats/tic6x-c64xp-linux.dat
@V@/gdb/remote-e7000.c @V@/gdb/rmt-e7000.c
@V@/gdb/remote-est.c @V@/gdb/rmt-est.c
@V@/gdb/remote-mips.c @V@/gdb/rmt-mips.c
@@ -368,6 +375,8 @@
@V@/gdb/sparc-linux-tdep.c @V@/gdb/splx-tdep.c
@V@/gdb/sparc-sol2-nat.c @V@/gdb/spsol2-nat.c
@V@/gdb/sparc-sol2-tdep.c @V@/gdb/spsol2-tdep.c
+@V@/gdb/tic6x-tdep.c @V@/gdb/tic6x-tdep.h
+@V@/gdb/tic6x-linux-tdep.c
@V@/gdb/testsuite/.gdbinit @V@/gdb/testsuite/gdb.ini
@V@/gdb/testsuite/gdb.arch/altivec-abi.c @V@/gdb/testsuite/gdb.arch/av-abi.c
@V@/gdb/testsuite/gdb.arch/altivec-abi.exp @V@/gdb/testsuite/gdb.arch/av-abi.exp
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 37c81b8..b5b6c74 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -36854,6 +36854,7 @@ registers using the capitalization used in the description.
* MIPS Features::
* M68K Features::
* PowerPC Features::
+* TIC6x Features::
@end menu
@@ -37015,6 +37016,21 @@ contain registers @samp{ev0h} through @samp{ev31h}, @samp{acc}, and
these to present registers @samp{ev0} through @samp{ev31} to the
user.
+@node TIC6x Features
+@subsection TMS320C6x Features
+@cindex target descriptions, TIC6x features
+@cindex target descriptions, TMS320C6x features
+The @samp{org.gnu.gdb.tic6x.core} feature is required for TMS320C6x
+targets. It should contain registers @samp{A0} through @samp{A15},
+registers @samp{B0} through @samp{B15}, @samp{CSR} and @samp{PC}.
+
+The @samp{org.gnu.gdb.tic6x.gp} feature is optional. It should
+contain registers @samp{A16} through @samp{A31} and @samp{B16}
+through @samp{B31}.
+
+The @samp{org.gnu.gdb.tic6x.c6xp} feature is optional. It should
+contain registers @samp{TSR}, @samp{ILC} and @samp{RILC}.
+
@node Operating System Information
@appendix Operating System Information
@cindex operating system information
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 4e8e7ee..e7e72d1 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -41,7 +41,8 @@ WHICH = arm-with-iwmmxt arm-with-vfpv2 arm-with-vfpv3 arm-with-neon \
rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
rs6000/powerpc-64l rs6000/powerpc-altivec64l rs6000/powerpc-vsx32l \
rs6000/powerpc-vsx64l rs6000/powerpc-cell32l rs6000/powerpc-cell64l \
- s390-linux32 s390-linux64 s390x-linux64
+ s390-linux32 s390-linux64 s390x-linux64 \
+ tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
# Record which registers should be sent to GDB by default after stop.
arm-expedite = r11,sp,pc
@@ -63,7 +64,9 @@ rs6000/powerpc-cell64l-expedite = r1,pc,r0,orig_r3,r4
s390-linux32-expedite = r14,r15,pswa
s390-linux64-expedite = r14l,r15l,pswa
s390x-linux64-expedite = r14,r15,pswa
-
+tic6x-c64xp-linux-expedite = A15,PC
+tic6x-c64x-linux-expedite = A15,PC
+tic6x-c62x-linux-expedite = A15,PC
XSLTPROC = xsltproc
outdir = ../regformats
diff --git a/gdb/features/tic6x-c62x-linux.c b/gdb/features/tic6x-c62x-linux.c
new file mode 100644
index 0000000..df82fc2
--- /dev/null
+++ b/gdb/features/tic6x-c62x-linux.c
@@ -0,0 +1,56 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c62x-linux.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c62x_linux;
+static void
+initialize_tdesc_tic6x_c62x_linux (void)
+{
+ struct target_desc *result = allocate_target_description ();
+ struct tdesc_feature *feature;
+ struct tdesc_type *field_type, *type;
+
+ set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
+
+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
+ tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
+
+ tdesc_tic6x_c62x_linux = result;
+}
diff --git a/gdb/features/tic6x-c62x-linux.xml b/gdb/features/tic6x-c62x-linux.xml
new file mode 100644
index 0000000..0319438
--- /dev/null
+++ b/gdb/features/tic6x-c62x-linux.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
diff --git a/gdb/features/tic6x-c64x-linux.c b/gdb/features/tic6x-c64x-linux.c
new file mode 100644
index 0000000..39f9e95
--- /dev/null
+++ b/gdb/features/tic6x-c64x-linux.c
@@ -0,0 +1,90 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c64x-linux.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c64x_linux;
+static void
+initialize_tdesc_tic6x_c64x_linux (void)
+{
+ struct target_desc *result = allocate_target_description ();
+ struct tdesc_feature *feature;
+ struct tdesc_type *field_type, *type;
+
+ set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
+
+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
+ tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
+ tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
+
+ tdesc_tic6x_c64x_linux = result;
+}
diff --git a/gdb/features/tic6x-c64x-linux.xml b/gdb/features/tic6x-c64x-linux.xml
new file mode 100644
index 0000000..2d11bd0
--- /dev/null
+++ b/gdb/features/tic6x-c64x-linux.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
+
diff --git a/gdb/features/tic6x-c64xp-linux.c b/gdb/features/tic6x-c64xp-linux.c
new file mode 100644
index 0000000..a959ec6
--- /dev/null
+++ b/gdb/features/tic6x-c64xp-linux.c
@@ -0,0 +1,95 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c64xp-linux.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c64xp_linux;
+static void
+initialize_tdesc_tic6x_c64xp_linux (void)
+{
+ struct target_desc *result = allocate_target_description ();
+ struct tdesc_feature *feature;
+ struct tdesc_type *field_type, *type;
+
+ set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
+
+ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
+ tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
+ tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.c6xp");
+ tdesc_create_reg (feature, "TSR", 66, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "ILC", 67, 1, NULL, 32, "uint32");
+ tdesc_create_reg (feature, "RILC", 68, 1, NULL, 32, "uint32");
+
+ tdesc_tic6x_c64xp_linux = result;
+}
diff --git a/gdb/features/tic6x-c64xp-linux.xml b/gdb/features/tic6x-c64xp-linux.xml
new file mode 100644
index 0000000..6ff8407
--- /dev/null
+++ b/gdb/features/tic6x-c64xp-linux.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
+
+
diff --git a/gdb/features/tic6x-c6xp.xml b/gdb/features/tic6x-c6xp.xml
new file mode 100644
index 0000000..0923b1b
--- /dev/null
+++ b/gdb/features/tic6x-c6xp.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/gdb/features/tic6x-core.xml b/gdb/features/tic6x-core.xml
new file mode 100644
index 0000000..63074eb
--- /dev/null
+++ b/gdb/features/tic6x-core.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gdb/features/tic6x-gp.xml b/gdb/features/tic6x-gp.xml
new file mode 100644
index 0000000..d1249f3
--- /dev/null
+++ b/gdb/features/tic6x-gp.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gdb/regformats/tic6x-c62x-linux.dat b/gdb/regformats/tic6x-c62x-linux.dat
new file mode 100644
index 0000000..3758d84
--- /dev/null
+++ b/gdb/regformats/tic6x-c62x-linux.dat
@@ -0,0 +1,38 @@
+# DO NOT EDIT: generated from tic6x-c62x-linux.xml
+name:tic6x_c62x_linux
+xmltarget:tic6x-c62x-linux.xml
+expedite:A15,PC
+32:A0
+32:A1
+32:A2
+32:A3
+32:A4
+32:A5
+32:A6
+32:A7
+32:A8
+32:A9
+32:A10
+32:A11
+32:A12
+32:A13
+32:A14
+32:A15
+32:B0
+32:B1
+32:B2
+32:B3
+32:B4
+32:B5
+32:B6
+32:B7
+32:B8
+32:B9
+32:B10
+32:B11
+32:B12
+32:B13
+32:B14
+32:B15
+32:CSR
+32:PC
diff --git a/gdb/regformats/tic6x-c64x-linux.dat b/gdb/regformats/tic6x-c64x-linux.dat
new file mode 100644
index 0000000..8b1724c
--- /dev/null
+++ b/gdb/regformats/tic6x-c64x-linux.dat
@@ -0,0 +1,70 @@
+# DO NOT EDIT: generated from tic6x-c64x-linux.xml
+name:tic6x_c64x_linux
+xmltarget:tic6x-c64x-linux.xml
+expedite:A15,PC
+32:A0
+32:A1
+32:A2
+32:A3
+32:A4
+32:A5
+32:A6
+32:A7
+32:A8
+32:A9
+32:A10
+32:A11
+32:A12
+32:A13
+32:A14
+32:A15
+32:B0
+32:B1
+32:B2
+32:B3
+32:B4
+32:B5
+32:B6
+32:B7
+32:B8
+32:B9
+32:B10
+32:B11
+32:B12
+32:B13
+32:B14
+32:B15
+32:CSR
+32:PC
+32:A16
+32:A17
+32:A18
+32:A19
+32:A20
+32:A21
+32:A22
+32:A23
+32:A24
+32:A25
+32:A26
+32:A27
+32:A28
+32:A29
+32:A30
+32:A31
+32:B16
+32:B17
+32:B18
+32:B19
+32:B20
+32:B21
+32:B22
+32:B23
+32:B24
+32:B25
+32:B26
+32:B27
+32:B28
+32:B29
+32:B30
+32:B31
diff --git a/gdb/regformats/tic6x-c64xp-linux.dat b/gdb/regformats/tic6x-c64xp-linux.dat
new file mode 100644
index 0000000..4d12148
--- /dev/null
+++ b/gdb/regformats/tic6x-c64xp-linux.dat
@@ -0,0 +1,73 @@
+# DO NOT EDIT: generated from tic6x-c64xp-linux.xml
+name:tic6x_c64xp_linux
+xmltarget:tic6x-c64xp-linux.xml
+expedite:A15,PC
+32:A0
+32:A1
+32:A2
+32:A3
+32:A4
+32:A5
+32:A6
+32:A7
+32:A8
+32:A9
+32:A10
+32:A11
+32:A12
+32:A13
+32:A14
+32:A15
+32:B0
+32:B1
+32:B2
+32:B3
+32:B4
+32:B5
+32:B6
+32:B7
+32:B8
+32:B9
+32:B10
+32:B11
+32:B12
+32:B13
+32:B14
+32:B15
+32:CSR
+32:PC
+32:A16
+32:A17
+32:A18
+32:A19
+32:A20
+32:A21
+32:A22
+32:A23
+32:A24
+32:A25
+32:A26
+32:A27
+32:A28
+32:A29
+32:A30
+32:A31
+32:B16
+32:B17
+32:B18
+32:B19
+32:B20
+32:B21
+32:B22
+32:B23
+32:B24
+32:B25
+32:B26
+32:B27
+32:B28
+32:B29
+32:B30
+32:B31
+32:TSR
+32:ILC
+32:RILC
--
1.7.0.4