diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-11-24 09:29:43 +0000 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-11-24 09:29:43 +0000 |
commit | 506fe5f4996738f25b7c26f126a84b231429ba95 (patch) | |
tree | f2fac3f4ca6c8ced4d56577f75022d6c0cba0b03 /gdb/features | |
parent | 6d2cd6b2084d980a4baf5b4bdce8499c2295a672 (diff) | |
download | gdb-506fe5f4996738f25b7c26f126a84b231429ba95.zip gdb-506fe5f4996738f25b7c26f126a84b231429ba95.tar.gz gdb-506fe5f4996738f25b7c26f126a84b231429ba95.tar.bz2 |
Change tic6x target descriptions
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-24 Yao Qi <yao.qi@linaro.org>
* 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-24 Yao Qi <yao.qi@linaro.org>
* 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.
Diffstat (limited to 'gdb/features')
-rw-r--r-- | gdb/features/Makefile | 5 | ||||
-rw-r--r-- | gdb/features/tic6x-c6xp.c | 16 | ||||
-rw-r--r-- | gdb/features/tic6x-core.c | 47 | ||||
-rw-r--r-- | gdb/features/tic6x-gp.c | 45 |
4 files changed, 112 insertions, 1 deletions
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; +} |