aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2017-09-05 09:54:54 +0100
committerYao Qi <yao.qi@linaro.org>2017-09-05 09:54:54 +0100
commit22916b0786336394bf84f68ba71875ac3cd48fea (patch)
treed33017acd70368911aafd35d32af46f61c2a358d /gdb/gdbserver
parent0854b7b1878dc9f8b8519e2efed605acecc14745 (diff)
downloadgdb-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/ChangeLog15
-rw-r--r--gdb/gdbserver/configure.srv26
-rw-r--r--gdb/gdbserver/linux-x86-tdesc.c4
-rw-r--r--gdb/gdbserver/lynx-i386-low.c9
-rw-r--r--gdb/gdbserver/nto-x86-low.c11
-rw-r--r--gdb/gdbserver/win32-i386-low.c22
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
}