diff --git a/gdb/features/tic6x-c62x-linux.c b/gdb/features/tic6x-c62x-linux.c
new file mode 100644
index 0000000000..df82fc2e77
--- /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 0000000000..0319438b32
--- /dev/null
+++ b/gdb/features/tic6x-c62x-linux.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
diff --git a/gdb/features/tic6x-c62x.c b/gdb/features/tic6x-c62x.c
new file mode 100644
index 0000000000..6e3a9c8013
--- /dev/null
+++ b/gdb/features/tic6x-c62x.c
@@ -0,0 +1,54 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c62x.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c62x;
+static void
+initialize_tdesc_tic6x_c62x (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"));
+
+ 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 = result;
+}
diff --git a/gdb/features/tic6x-c62x.xml b/gdb/features/tic6x-c62x.xml
new file mode 100644
index 0000000000..e425b5e3e9
--- /dev/null
+++ b/gdb/features/tic6x-c62x.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ tic6x
+
+
diff --git a/gdb/features/tic6x-c64x-linux.c b/gdb/features/tic6x-c64x-linux.c
new file mode 100644
index 0000000000..39f9e955a1
--- /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 0000000000..2d11bd0ba2
--- /dev/null
+++ b/gdb/features/tic6x-c64x-linux.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
+
diff --git a/gdb/features/tic6x-c64x.c b/gdb/features/tic6x-c64x.c
new file mode 100644
index 0000000000..90f178544d
--- /dev/null
+++ b/gdb/features/tic6x-c64x.c
@@ -0,0 +1,88 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c64x.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c64x;
+static void
+initialize_tdesc_tic6x_c64x (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"));
+
+ 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 = result;
+}
diff --git a/gdb/features/tic6x-c64x.xml b/gdb/features/tic6x-c64x.xml
new file mode 100644
index 0000000000..a694cb0120
--- /dev/null
+++ b/gdb/features/tic6x-c64x.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ tic6x
+
+
+
diff --git a/gdb/features/tic6x-c64xp-linux.c b/gdb/features/tic6x-c64xp-linux.c
new file mode 100644
index 0000000000..a959ec6109
--- /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 0000000000..6ff8407417
--- /dev/null
+++ b/gdb/features/tic6x-c64xp-linux.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ tic6x
+ GNU/Linux
+
+
+
+
diff --git a/gdb/features/tic6x-c64xp.c b/gdb/features/tic6x-c64xp.c
new file mode 100644
index 0000000000..90cacb9def
--- /dev/null
+++ b/gdb/features/tic6x-c64xp.c
@@ -0,0 +1,93 @@
+/* THIS FILE IS GENERATED. Original: tic6x-c64xp.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_tic6x_c64xp;
+static void
+initialize_tdesc_tic6x_c64xp (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"));
+
+ 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 = result;
+}
diff --git a/gdb/features/tic6x-c64xp.xml b/gdb/features/tic6x-c64xp.xml
new file mode 100644
index 0000000000..0ce0e22cd7
--- /dev/null
+++ b/gdb/features/tic6x-c64xp.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ tic6x
+
+
+
+
diff --git a/gdb/features/tic6x-c6xp.xml b/gdb/features/tic6x-c6xp.xml
new file mode 100644
index 0000000000..0923b1b1c6
--- /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 0000000000..63074eb59b
--- /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 0000000000..d1249f3ba4
--- /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 0000000000..3758d84477
--- /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-c62x.dat b/gdb/regformats/tic6x-c62x.dat
new file mode 100644
index 0000000000..da689fbf26
--- /dev/null
+++ b/gdb/regformats/tic6x-c62x.dat
@@ -0,0 +1,38 @@
+# DO NOT EDIT: generated from tic6x-c62x.xml
+name:tic6x_c62x
+xmltarget:tic6x-c62x.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 0000000000..8b1724c08d
--- /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-c64x.dat b/gdb/regformats/tic6x-c64x.dat
new file mode 100644
index 0000000000..1915aafcc9
--- /dev/null
+++ b/gdb/regformats/tic6x-c64x.dat
@@ -0,0 +1,70 @@
+# DO NOT EDIT: generated from tic6x-c64x.xml
+name:tic6x_c64x
+xmltarget:tic6x-c64x.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 0000000000..4d12148b1b
--- /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
diff --git a/gdb/regformats/tic6x-c64xp.dat b/gdb/regformats/tic6x-c64xp.dat
new file mode 100644
index 0000000000..42ca258a9e
--- /dev/null
+++ b/gdb/regformats/tic6x-c64xp.dat
@@ -0,0 +1,73 @@
+# DO NOT EDIT: generated from tic6x-c64xp.xml
+name:tic6x_c64xp
+xmltarget:tic6x-c64xp.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