2002-04-24 Daniel Jacobowitz <drow@mvista.com>
* config/i386/tm-linux.h: Define FILL_FPXREGSET. * gregset.h: If FILL_FPXREGSET is defined, provide gdb_fpxregset_t, supply_fpxregset, and fill_fpxregset. * linux-proc.c (linux_do_thread_registers): If FILL_FPXREGSET is defined, call fill_fpxregset.
This commit is contained in:
parent
af55c2e6c3
commit
32872fa78e
|
@ -1,3 +1,11 @@
|
||||||
|
2002-04-24 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
|
* config/i386/tm-linux.h: Define FILL_FPXREGSET.
|
||||||
|
* gregset.h: If FILL_FPXREGSET is defined, provide
|
||||||
|
gdb_fpxregset_t, supply_fpxregset, and fill_fpxregset.
|
||||||
|
* linux-proc.c (linux_do_thread_registers): If FILL_FPXREGSET
|
||||||
|
is defined, call fill_fpxregset.
|
||||||
|
|
||||||
2002-04-24 Roland McGrath <roland@frob.com>
|
2002-04-24 Roland McGrath <roland@frob.com>
|
||||||
|
|
||||||
* config/i386/i386gnu.mh (NATDEPFILES): Add core-regset.o here.
|
* config/i386/i386gnu.mh (NATDEPFILES): Add core-regset.o here.
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#define I386_GNULINUX_TARGET
|
#define I386_GNULINUX_TARGET
|
||||||
#define HAVE_I387_REGS
|
#define HAVE_I387_REGS
|
||||||
#ifdef HAVE_PTRACE_GETFPXREGS
|
#ifdef HAVE_PTRACE_GETFPXREGS
|
||||||
|
#define FILL_FPXREGSET
|
||||||
#define HAVE_SSE_REGS
|
#define HAVE_SSE_REGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -52,5 +52,18 @@ extern void supply_fpregset (gdb_fpregset_t *fpregs);
|
||||||
extern void fill_gregset (gdb_gregset_t *gregs, int regno);
|
extern void fill_gregset (gdb_gregset_t *gregs, int regno);
|
||||||
extern void fill_fpregset (gdb_fpregset_t *fpregs, int regno);
|
extern void fill_fpregset (gdb_fpregset_t *fpregs, int regno);
|
||||||
|
|
||||||
|
#ifdef FILL_FPXREGSET
|
||||||
|
/* Linux/i386: Copy register values between GDB's internal register cache
|
||||||
|
and the i386 extended floating point registers. */
|
||||||
|
|
||||||
|
#ifndef GDB_FPXREGSET_T
|
||||||
|
#define GDB_FPXREGSET_T elf_fpxregset_t
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef GDB_FPXREGSET_T gdb_fpxregset_t;
|
||||||
|
|
||||||
|
extern void supply_fpxregset (gdb_fpxregset_t *fpxregs);
|
||||||
|
extern void fill_fpxregset (gdb_fpxregset_t *fpxregs, int regno);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -167,6 +167,9 @@ linux_do_thread_registers (bfd *obfd, ptid_t ptid,
|
||||||
{
|
{
|
||||||
gdb_gregset_t gregs;
|
gdb_gregset_t gregs;
|
||||||
gdb_fpregset_t fpregs;
|
gdb_fpregset_t fpregs;
|
||||||
|
#ifdef FILL_FPXREGSET
|
||||||
|
gdb_fpxregset_t fpxregs;
|
||||||
|
#endif
|
||||||
unsigned long merged_pid = ptid_get_tid (ptid) << 16 | ptid_get_pid (ptid);
|
unsigned long merged_pid = ptid_get_tid (ptid) << 16 | ptid_get_pid (ptid);
|
||||||
|
|
||||||
fill_gregset (&gregs, -1);
|
fill_gregset (&gregs, -1);
|
||||||
|
@ -183,6 +186,14 @@ linux_do_thread_registers (bfd *obfd, ptid_t ptid,
|
||||||
note_size,
|
note_size,
|
||||||
&fpregs,
|
&fpregs,
|
||||||
sizeof (fpregs));
|
sizeof (fpregs));
|
||||||
|
#ifdef FILL_FPXREGSET
|
||||||
|
fill_fpxregset (&fpxregs, -1);
|
||||||
|
note_data = (char *) elfcore_write_prxfpreg (obfd,
|
||||||
|
note_data,
|
||||||
|
note_size,
|
||||||
|
&fpxregs,
|
||||||
|
sizeof (fpxregs));
|
||||||
|
#endif
|
||||||
return note_data;
|
return note_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue