diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-09-05 09:54:54 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-09-05 09:54:54 +0100 |
commit | 22916b0786336394bf84f68ba71875ac3cd48fea (patch) | |
tree | d33017acd70368911aafd35d32af46f61c2a358d /gdb/gdbserver | |
parent | 0854b7b1878dc9f8b8519e2efed605acecc14745 (diff) | |
download | gdb-22916b0786336394bf84f68ba71875ac3cd48fea.zip gdb-22916b0786336394bf84f68ba71875ac3cd48fea.tar.gz gdb-22916b0786336394bf84f68ba71875ac3cd48fea.tar.bz2 |
Convert the rest x86 target descriptions
This patch changes the rest of x86 target descriptions in GDB and
GDBserver.
gdb:
2017-09-05 Yao Qi <yao.qi@linaro.org>
* amd64-tdep.c (amd64_target_description): Create target
descriptions.
(_initialize_amd64_tdep): Don't call functions
initialize_tdesc_amd64_*. Add self tests.
* arch/amd64.c (amd64_create_target_description): Add parameter
is_linux. Call set_tdesc_osabi if is_linux is true.
* arch/amd64.h (amd64_create_target_description): Update the
declaration.
* arch/i386.c (i386_create_target_description): Add parameter
is_linux. Call set_tdesc_osabi if is_linux is true.
* arch/i386.h (i386_create_target_description): Update
declaration.
* configure.tgt: Add i386.o to gdb_target_obs.
* features/Makefile (XMLTOC): Remove i386/*.xml.
* features/i386/amd64-avx-avx512.c: Remove.
* features/i386/amd64-avx-mpx-avx512-pku.c: Remove.
* features/i386/amd64-avx-mpx.c: Remove.
* features/i386/amd64-avx.c: Remove.
* features/i386/amd64-mpx.c: Remove.
* features/i386/amd64.c: Remove.
* features/i386/i386-avx-avx512.c: Remove.
* features/i386/i386-avx-mpx-avx512-pku.c: Remove.
* features/i386/i386-avx-mpx.c: Remove.
* features/i386/i386-avx.c: Remove.
* features/i386/i386-mmx.c: Remove.
* features/i386/i386-mpx.c: Remove.
* features/i386/i386.c: Remove.
* i386-tdep.c: Don't include features/i386/i386*.c., include
target-descriptions.h and arch/i386.h.
(i386_target_description): Create target descriptions.
(i386_gdbarch_init): Don't call initialize_tdesc_i386_*
functions. Do self tests.
gdb/gdbserver:
2017-09-05 Yao Qi <yao.qi@linaro.org>
* configure.srv (srv_i386_regobj): Remove.
(srv_amd64_regobj): Remove.
(srv_regobj): Set it to "" for x86 non-linux targets.
* linux-x86-tdesc.c (i386_linux_read_description):
* lynx-i386-low.c: Include x86-xstate.h and arch/i386.h.
(init_registers_i386): Remove the declaration.
(tdesc_i386): Remove the declaration.
(lynx_i386_arch_setup): Call i386_create_target_description.
* nto-x86-low.c: Likewise.
* win32-i386-low.c [__x86_64__]: include arch/amd64.h.
[!__x86_64__]: include arch/i386.h.
(i386_arch_setup) [__x86_64__]: Call amd64_create_target_description.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 15 | ||||
-rw-r--r-- | gdb/gdbserver/configure.srv | 26 | ||||
-rw-r--r-- | gdb/gdbserver/linux-x86-tdesc.c | 4 | ||||
-rw-r--r-- | gdb/gdbserver/lynx-i386-low.c | 9 | ||||
-rw-r--r-- | gdb/gdbserver/nto-x86-low.c | 11 | ||||
-rw-r--r-- | gdb/gdbserver/win32-i386-low.c | 22 |
6 files changed, 45 insertions, 42 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 1f03aac..ac73db2 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,20 @@ 2017-09-05 Yao Qi <yao.qi@linaro.org> + * configure.srv (srv_i386_regobj): Remove. + (srv_amd64_regobj): Remove. + (srv_regobj): Set it to "" for x86 non-linux targets. + * linux-x86-tdesc.c (i386_linux_read_description): + * lynx-i386-low.c: Include x86-xstate.h and arch/i386.h. + (init_registers_i386): Remove the declaration. + (tdesc_i386): Remove the declaration. + (lynx_i386_arch_setup): Call i386_create_target_description. + * nto-x86-low.c: Likewise. + * win32-i386-low.c [__x86_64__]: include arch/amd64.h. + [!__x86_64__]: include arch/i386.h. + (i386_arch_setup) [__x86_64__]: Call amd64_create_target_description. + +2017-09-05 Yao Qi <yao.qi@linaro.org> + * configure.srv (srv_amd64_linux_xmlfiles): Remove i386/amd64-XXX-linux from it. diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index a2c5afe..2a0c2b2 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -24,8 +24,6 @@ # Default hostio_last_error implementation srv_hostio_err_objs="hostio-errno.o" -srv_i386_regobj="i386.o" - if $development; then srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx-avx512-linux.o i386-avx-mpx-avx512-pku-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o linux-x86-tdesc-selftest.o" srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-linux.o amd64-avx-mpx-avx512-pku-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx-avx512-linux.o" @@ -34,8 +32,6 @@ else srv_amd64_linux_regobj="" fi -srv_amd64_regobj="amd64.o" - ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o" srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml i386/32bit-pkeys.xml" @@ -115,8 +111,9 @@ case "${target}" in srv_linux_usrregs=yes srv_linux_thread_db=yes ;; - i[34567]86-*-cygwin*) srv_regobj="$srv_i386_regobj" + i[34567]86-*-cygwin*) srv_regobj="" srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o" + srv_tgtobj="${srv_tgtobj} arch-i386.o" srv_xmlfiles="$srv_i386_xmlfiles" ;; i[34567]86-*-linux*) srv_regobj="$srv_i386_linux_regobj" @@ -138,16 +135,18 @@ case "${target}" in ipa_obj="linux-i386-ipa.o linux-x86-tdesc-ipa.o" ipa_obj="${ipa_obj} i386-ipa.o" ;; - i[34567]86-*-lynxos*) srv_regobj="i386.o" + i[34567]86-*-lynxos*) srv_regobj="" srv_tgtobj="lynx-low.o lynx-i386-low.o fork-child.o fork-inferior.o" + srv_tgtobj="${srv_tgtobj} arch-i386.o" srv_xmlfiles="i386/i386.xml" srv_xmlfiles="${srv_xmlfiles} i386/32bit-core.xml" srv_xmlfiles="${srv_xmlfiles} i386/32bit-sse.xml" srv_lynxos=yes ;; i[34567]86-*-mingw32ce*) - srv_regobj="$srv_i386_regobj" + srv_regobj="" srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o" + srv_tgtobj="${srv_tgtobj} arch-i386.o" srv_tgtobj="${srv_tgtobj} wincecompat.o" srv_xmlfiles="$srv_i386_xmlfiles" # hostio_last_error implementation is in win32-low.c @@ -155,13 +154,14 @@ case "${target}" in srv_mingw=yes srv_mingwce=yes ;; - i[34567]86-*-mingw*) srv_regobj="$srv_i386_regobj" + i[34567]86-*-mingw*) srv_regobj="" srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o" + srv_tgtobj="${srv_tgtobj} arch-i386.o" srv_xmlfiles="$srv_i386_xmlfiles" srv_mingw=yes ;; - i[34567]86-*-nto*) srv_regobj="$srv_i386_regobj" - srv_tgtobj="nto-low.o nto-x86-low.o" + i[34567]86-*-nto*) srv_regobj="" + srv_tgtobj="nto-low.o nto-x86-low.o arch-i386.o" srv_xmlfiles="$srv_i386_xmlfiles" srv_qnx="yes" ;; @@ -377,13 +377,15 @@ case "${target}" in ipa_obj="linux-amd64-ipa.o linux-x86-tdesc-ipa.o" ipa_obj="${ipa_obj} amd64-ipa.o" ;; - x86_64-*-mingw*) srv_regobj="$srv_amd64_regobj" + x86_64-*-mingw*) srv_regobj="" srv_tgtobj="x86-low.o x86-dregs.o i387-fp.o win32-low.o win32-i386-low.o" + srv_tgtobj="${srv_tgtobj} arch-amd64.o" srv_xmlfiles="$srv_i386_xmlfiles $srv_amd64_xmlfiles" srv_mingw=yes ;; - x86_64-*-cygwin*) srv_regobj="$srv_amd64_regobj" + x86_64-*-cygwin*) srv_regobj="" srv_tgtobj="x86-low.o x86-dregs.o i387-fp.o win32-low.o win32-i386-low.o" + srv_tgtobj="${srv_tgtobj} arch-amd64.o" srv_xmlfiles="$srv_i386_xmlfiles" ;; diff --git a/gdb/gdbserver/linux-x86-tdesc.c b/gdb/gdbserver/linux-x86-tdesc.c index 9eb61a7..d27068c 100644 --- a/gdb/gdbserver/linux-x86-tdesc.c +++ b/gdb/gdbserver/linux-x86-tdesc.c @@ -86,7 +86,7 @@ i386_linux_read_description (uint64_t xcr0) if (*tdesc == NULL) { - *tdesc = i386_create_target_description (xcr0); + *tdesc = i386_create_target_description (xcr0, true); init_target_desc (*tdesc); @@ -122,7 +122,7 @@ amd64_linux_read_description (uint64_t xcr0, bool is_x32) if (*tdesc == NULL) { - *tdesc = amd64_create_target_description (xcr0, is_x32); + *tdesc = amd64_create_target_description (xcr0, is_x32, true); init_target_desc (*tdesc); diff --git a/gdb/gdbserver/lynx-i386-low.c b/gdb/gdbserver/lynx-i386-low.c index 64e6c0f..57181d6 100644 --- a/gdb/gdbserver/lynx-i386-low.c +++ b/gdb/gdbserver/lynx-i386-low.c @@ -19,6 +19,8 @@ #include "lynx-low.h" #include <limits.h> #include <sys/ptrace.h> +#include "x86-xstate.h" +#include "arch/i386.h" /* The following two typedefs are defined in a .h file which is not in the standard include path (/sys/include/family/x86/ucontext.h), @@ -118,10 +120,6 @@ enum lynx_i386_gdb_regnum I386_SENTINEL_REGUM }; -/* Defined in auto-generated file i386.c. */ -extern void init_registers_i386 (void); -extern const struct target_desc *tdesc_i386; - /* The fill_function for the general-purpose register set. */ static void @@ -295,8 +293,7 @@ lynx_i386_store_fpregset (struct regcache *regcache, const char *buf) static void lynx_i386_arch_setup (void) { - init_registers_i386 (); - lynx_tdesc = tdesc_i386; + lynx_tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false); } /* Description of all the x86-lynx register sets. */ diff --git a/gdb/gdbserver/nto-x86-low.c b/gdb/gdbserver/nto-x86-low.c index 901ac7b..cfa5993 100644 --- a/gdb/gdbserver/nto-x86-low.c +++ b/gdb/gdbserver/nto-x86-low.c @@ -23,12 +23,8 @@ #include "regcache.h" #include <x86/context.h> - - -/* Defined in auto-generated build-time file gdb/gdbserver/i386.c. */ -extern void init_registers_i386 (); -extern struct reg *regs_i386; -extern const struct target_desc *tdesc_i386; +#include "x86-xstate.h" +#include "arch/i386.h" const unsigned char x86_breakpoint[] = { 0xCC }; #define x86_breakpoint_len 1 @@ -90,9 +86,8 @@ nto_x86_register_offset (int gdbregno) static void nto_x86_arch_setup (void) { - init_registers_i386 (); the_low_target.num_regs = 16; - nto_tdesc = tdesc_i386; + nto_tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false); } struct nto_target_ops the_low_target = diff --git a/gdb/gdbserver/win32-i386-low.c b/gdb/gdbserver/win32-i386-low.c index 40bdf12..4361d82 100644 --- a/gdb/gdbserver/win32-i386-low.c +++ b/gdb/gdbserver/win32-i386-low.c @@ -18,6 +18,11 @@ #include "server.h" #include "win32-low.h" #include "x86-low.h" +#include "x86-xstate.h" +#ifdef __x86_64__ +#include "arch/amd64.h" +#endif +#include "arch/i386.h" #ifndef CONTEXT_EXTENDED_REGISTERS #define CONTEXT_EXTENDED_REGISTERS 0 @@ -28,16 +33,6 @@ #define FLAG_TRACE_BIT 0x100 -#ifdef __x86_64__ -/* Defined in auto-generated build-time file gdb/gdbserver/amd64.c. */ -void init_registers_amd64 (void); -extern const struct target_desc *tdesc_amd64; -#else -/* Defined in auto-generated build-time file gdb/gdbserver/i386.c. */ -void init_registers_i386 (void); -extern const struct target_desc *tdesc_i386; -#endif - static struct x86_debug_reg_state debug_reg_state; static int @@ -449,11 +444,10 @@ static void i386_arch_setup (void) { #ifdef __x86_64__ - init_registers_amd64 (); - win32_tdesc = tdesc_amd64; + win32_tdesc = amd64_create_target_description (X86_XSTATE_SSE_MASK, false, + false); #else - init_registers_i386 (); - win32_tdesc = tdesc_i386; + win32_tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false); #endif } |