* ppc-linux-nat.c (ppc_linux_read_description): New.
(_initialize_ppc_linux_nat): Set to_read_description. * ppc-tdep.h (tdesc_powerpc_e500): Declare.
This commit is contained in:
parent
7cc46491b1
commit
310a98e102
3 changed files with 37 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* ppc-linux-nat.c (ppc_linux_read_description): New.
|
||||
(_initialize_ppc_linux_nat): Set to_read_description.
|
||||
* ppc-tdep.h (tdesc_powerpc_e500): Declare.
|
||||
|
||||
2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* NEWS: Document target described register support for PowerPC.
|
||||
|
|
|
@ -940,6 +940,33 @@ fill_fpregset (const struct regcache *regcache,
|
|||
fpregsetp, sizeof (*fpregsetp));
|
||||
}
|
||||
|
||||
static const struct target_desc *
|
||||
ppc_linux_read_description (struct target_ops *ops)
|
||||
{
|
||||
if (have_ptrace_getsetevrregs)
|
||||
{
|
||||
struct gdb_evrregset_t evrregset;
|
||||
int tid = TIDGET (inferior_ptid);
|
||||
|
||||
if (tid == 0)
|
||||
tid = PIDGET (inferior_ptid);
|
||||
|
||||
if (ptrace (PTRACE_GETEVRREGS, tid, 0, &evrregset) >= 0)
|
||||
return tdesc_powerpc_e500;
|
||||
else
|
||||
{
|
||||
/* EIO means that the PTRACE_GETEVRREGS request isn't supported. */
|
||||
if (errno == EIO)
|
||||
return NULL;
|
||||
else
|
||||
/* Anything else needs to be reported. */
|
||||
perror_with_name (_("Unable to fetch SPE registers"));
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void _initialize_ppc_linux_nat (void);
|
||||
|
||||
void
|
||||
|
@ -962,6 +989,8 @@ _initialize_ppc_linux_nat (void)
|
|||
t->to_stopped_by_watchpoint = ppc_linux_stopped_by_watchpoint;
|
||||
t->to_stopped_data_address = ppc_linux_stopped_data_address;
|
||||
|
||||
t->to_read_description = ppc_linux_read_description;
|
||||
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, ppc_linux_new_thread);
|
||||
|
|
|
@ -227,4 +227,6 @@ enum {
|
|||
/* Estimate for the maximum number of instrctions in a function epilogue. */
|
||||
#define PPC_MAX_EPILOGUE_INSTRUCTIONS 52
|
||||
|
||||
extern struct target_desc *tdesc_powerpc_e500;
|
||||
|
||||
#endif /* ppc-tdep.h */
|
||||
|
|
Loading…
Reference in a new issue