Enable x32 support in gdbserver

* Makefile.in (clean): Also remove x32.c x32-linux.c
	x32-avx.c x32-avx-linux.c.
	(x32.o): New target.
	(x32.c): Likewise.
	(x32-linux.o): Likewise.
	(x32-linux.c): Likewise.
	(x32-avx.o): Likewise.
	(x32-avx.c): Likewise.
	(x32-avx-linux.o): Likewise.
	(x32-avx-linux.c): Likewise.

	* configure.srv (srv_amd64_regobj): Add x32.o x32-avx.o.
	(srv_amd64_linux_regobj): Add x32-linux.o x32-avx-linux.o.
	(srv_i386_64bit_xmlfiles): Add i386/x32-core.xml.
	(srv_amd64_xmlfiles): Add i386/x32.xml i386/x32-avx.xml.
	(srv_amd64_linux_xmlfiles): Add i386/x32-linux.xml
	i386/x32-avx-linux.xml.

	* linux-x86-low.c (init_registers_x32_linux): New prototype.
	(init_registers_x32_avx_linux): Likwise.
	(x86_linux_update_xmltarget): Call init_registers_x32_linux
	or init_registers_x32_avx_linux if linux_is_elf64 is false.
This commit is contained in:
H.J. Lu
2012-04-13 14:39:41 +00:00
parent ecedbe5852
commit 4d47af5cf2
4 changed files with 54 additions and 7 deletions

View File

@ -41,6 +41,10 @@ void init_registers_i386_avx_linux (void);
void init_registers_amd64_avx_linux (void);
/* Defined in auto-generated file i386-mmx-linux.c. */
void init_registers_i386_mmx_linux (void);
/* Defined in auto-generated file x32-linux.c. */
void init_registers_x32_linux (void);
/* Defined in auto-generated file x32-avx-linux.c. */
void init_registers_x32_avx_linux (void);
static unsigned char jump_insn[] = { 0xe9, 0, 0, 0, 0 };
static unsigned char small_jump_insn[] = { 0x66, 0xe9, 0, 0 };
@ -1158,8 +1162,10 @@ x86_linux_update_xmltarget (void)
#ifdef __x86_64__
if (num_xmm_registers == 8)
init_registers_i386_linux ();
else
else if (linux_is_elf64)
init_registers_amd64_linux ();
else
init_registers_x32_linux ();
#else
{
# ifdef HAVE_PTRACE_GETFPXREGS
@ -1254,8 +1260,10 @@ x86_linux_update_xmltarget (void)
/* I386 has 8 xmm regs. */
if (num_xmm_registers == 8)
init_registers_i386_avx_linux ();
else
else if (linux_is_elf64)
init_registers_amd64_avx_linux ();
else
init_registers_x32_avx_linux ();
#else
init_registers_i386_avx_linux ();
#endif