aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-tdep.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2004-06-07 23:37:20 +0000
committerJim Blandy <jimb@codesourcery.com>2004-06-07 23:37:20 +0000
commit019048261d3aa32a3ab50e00d3be1b257ac39c1f (patch)
treec361394eea190181e95ea98c866fd9ced73e15ce /gdb/rs6000-tdep.c
parentf90ef76436a03dabd37dadb4255eb0776c7d16ee (diff)
downloadgdb-019048261d3aa32a3ab50e00d3be1b257ac39c1f.zip
gdb-019048261d3aa32a3ab50e00d3be1b257ac39c1f.tar.gz
gdb-019048261d3aa32a3ab50e00d3be1b257ac39c1f.tar.bz2
Add native Linux support for the PowerPC E500.
* ppc-tdep.h (struct gdbarch_tdep): New member: 'ppc_gprs_pseudo_p'. * rs6000-tdep.c (rs6000_gdbarch_init): Initialize it to false on all architectures except the E500. * ppc-linux-nat.c: (PTRACE_GETEVRREGS, PTRACE_SETEVRREGS): New #definitions. (struct gdb_evrregset_t): New type. (have_ptrace_getsetevrregs): New variable. (get_spe_registers, read_spliced_spe_reg, fetch_spe_register, fetch_spe_registers): New functions. (fetch_register): Call fetch_spe_register as appropriate. Assert that we're only passed raw register numbers. (fetch_ppc_registers): Call fetch_spe_registers as appropriate. Don't fetch gprs if they're pseudoregisters. (set_spe_registers, write_spliced_spe_reg, store_spe_register, store_spe_registers): New functions. (store_register): Call store_spe_register as appropriate. Assert that we're only passed raw register numbers. (store_ppc_registers): Call store_spe_registers as appropriate. Don't store gprs if they're pseudoregisters.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r--gdb/rs6000-tdep.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 9cd744b..1bed464 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -2872,6 +2872,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->regs = v->regs;
tdep->ppc_gp0_regnum = 0;
+ tdep->ppc_gprs_pseudo_p = 0;
tdep->ppc_toc_regnum = 2;
tdep->ppc_ps_regnum = 65;
tdep->ppc_cr_regnum = 66;
@@ -2927,6 +2928,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
break;
case bfd_mach_ppc_e500:
tdep->ppc_gp0_regnum = 41;
+ tdep->ppc_gprs_pseudo_p = 1;
tdep->ppc_toc_regnum = -1;
tdep->ppc_ps_regnum = 1;
tdep->ppc_cr_regnum = 2;