diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-09-05 09:54:53 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-09-05 09:54:53 +0100 |
commit | f49ff00066929bf7c38f9c89ad640561bbb331f6 (patch) | |
tree | b410bbcba3cb5b90d02547b31e4f9efd0c0a7a8f /gdb/regformats | |
parent | 2b68ef2f11daef3ab3c6941ebf53dfcd0fb79fbf (diff) | |
download | gdb-f49ff00066929bf7c38f9c89ad640561bbb331f6.zip gdb-f49ff00066929bf7c38f9c89ad640561bbb331f6.tar.gz gdb-f49ff00066929bf7c38f9c89ad640561bbb331f6.tar.bz2 |
[GDBserver] Centralize tdesc for i386-linux
tdesc_i386_XXX_linux is used in many places in linux-x86-low.c and this
patch adds a new function i386_linux_read_description to return the right
tdesc according to xcr0. i386_linux_read_description is quite similar to
the counterpart in GDB, and the following patch will share the duplicated
code, so this patch adds arch/tdesc.h includes the declarations of various
tdesc apis which are used by the shared code. The generated c feature
files can include arch/tdesc.h only.
gdb/gdbserver:
2017-09-05 Yao Qi <yao.qi@linaro.org>
* configure.srv (srv_tgtobj): Append linux-x86-tdesc.o.
(ipa_obj): Likewise.
* linux-i386-ipa.c: Include common/x86-xstate.h
(get_ipa_tdesc): Call i386_linux_read_description.
(initialize_low_tracepoint): Don't call init_registers_XXX
functions, call initialize_low_tdesc instead.
* linux-x86-low.c (x86_linux_read_description): Call
i386_linux_read_description.
(initialize_low_arch): Don't call init_registers_i386_XXX
functions, call initialize_low_tdesc.
* linux-x86-tdesc.c: New file.
* linux-x86-tdesc.h (x86_linux_tdesc): New X86_TDESC_LAST.
(i386_get_ipa_tdesc_idx): Declare.
(i386_get_ipa_tdesc): Declare.
(initialize_low_tdesc): Declare.
gdb:
2017-09-05 Yao Qi <yao.qi@linaro.org>
* arch/tdesc.h: New file.
* regformats/regdat.sh: Generate code using tdesc_create_reg.
* target-descriptions.c: Update comments.
* target-descriptions.h: Include "arch/tdesc.h". Remove the
declarations.
* features/i386/32bit-avx.c: Re-generated.
* features/i386/32bit-avx512.c: Re-generated.
* features/i386/32bit-core.c: Re-generated.
* features/i386/32bit-linux.c: Re-generated.
* features/i386/32bit-mpx.c: Re-generated.
* features/i386/32bit-pkeys.c: Re-generated.
* features/i386/32bit-sse.c: Re-generated.
Diffstat (limited to 'gdb/regformats')
-rwxr-xr-x | gdb/regformats/regdat.sh | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gdb/regformats/regdat.sh b/gdb/regformats/regdat.sh index 236cd93..66449cc 100755 --- a/gdb/regformats/regdat.sh +++ b/gdb/regformats/regdat.sh @@ -131,7 +131,6 @@ do echo "{" echo " static struct target_desc tdesc_${name}_s;" echo " struct target_desc *result = &tdesc_${name}_s;" - echo " memset (result, 0, sizeof (*result));" continue elif test "${type}" = "xmltarget"; then @@ -150,12 +149,9 @@ do echo "$0: $1 does not specify \`\`name''." 1>&2 exit 1 else - echo " {struct reg *reg = XCNEW (struct reg);" - echo " reg->name = \"${entry}\";" - echo " reg->offset = ${offset};" - echo " reg->size = ${type};" - echo " VEC_safe_push (tdesc_reg_p, result->reg_defs, reg);" - echo " };" + echo " tdesc_create_reg ((struct tdesc_feature *) result, \"${entry}\"," + echo " 0, 0, NULL, ${type}, NULL);" + offset=`expr ${offset} + ${type}` i=`expr $i + 1` fi |