diff options
Diffstat (limited to 'gdb/ppcnbsd-nat.c')
-rw-r--r-- | gdb/ppcnbsd-nat.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gdb/ppcnbsd-nat.c b/gdb/ppcnbsd-nat.c index c14d8ed..9c85181 100644 --- a/gdb/ppcnbsd-nat.c +++ b/gdb/ppcnbsd-nat.c @@ -41,9 +41,9 @@ /* Returns true if PT_GETREGS fetches this register. */ static int -getregs_supplies (int regnum) +getregs_supplies (struct gdbarch *gdbarch, int regnum) { - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); return ((regnum >= tdep->ppc_gp0_regnum && regnum < tdep->ppc_gp0_regnum + ppc_num_gprs) @@ -51,15 +51,15 @@ getregs_supplies (int regnum) || regnum == tdep->ppc_cr_regnum || regnum == tdep->ppc_xer_regnum || regnum == tdep->ppc_ctr_regnum - || regnum == gdbarch_pc_regnum (current_gdbarch)); + || regnum == gdbarch_pc_regnum (gdbarch)); } /* Like above, but for PT_GETFPREGS. */ static int -getfpregs_supplies (int regnum) +getfpregs_supplies (struct gdbarch *gdbarch, int regnum) { - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* FIXME: jimb/2004-05-05: Some PPC variants don't have floating point registers. Traditionally, GDB's register set has still @@ -71,7 +71,7 @@ getfpregs_supplies (int regnum) It's not clear to me how best to update this code, so this assert will alert the first person to encounter the NetBSD/E500 combination to the problem. */ - gdb_assert (ppc_floating_point_unit_p (current_gdbarch)); + gdb_assert (ppc_floating_point_unit_p (gdbarch)); return ((regnum >= tdep->ppc_fp0_regnum && regnum < tdep->ppc_fp0_regnum + ppc_num_fprs) @@ -81,7 +81,9 @@ getfpregs_supplies (int regnum) static void ppcnbsd_fetch_inferior_registers (struct regcache *regcache, int regnum) { - if (regnum == -1 || getregs_supplies (regnum)) + struct gdbarch *gdbarch = get_regcache_arch (regcache); + + if (regnum == -1 || getregs_supplies (gdbarch, regnum)) { struct reg regs; @@ -93,7 +95,7 @@ ppcnbsd_fetch_inferior_registers (struct regcache *regcache, int regnum) regnum, ®s, sizeof regs); } - if (regnum == -1 || getfpregs_supplies (regnum)) + if (regnum == -1 || getfpregs_supplies (gdbarch, regnum)) { struct fpreg fpregs; @@ -109,7 +111,9 @@ ppcnbsd_fetch_inferior_registers (struct regcache *regcache, int regnum) static void ppcnbsd_store_inferior_registers (struct regcache *regcache, int regnum) { - if (regnum == -1 || getregs_supplies (regnum)) + struct gdbarch *gdbarch = get_regcache_arch (regcache); + + if (regnum == -1 || getregs_supplies (gdbarch, regnum)) { struct reg regs; @@ -125,7 +129,7 @@ ppcnbsd_store_inferior_registers (struct regcache *regcache, int regnum) perror_with_name (_("Couldn't write registers")); } - if (regnum == -1 || getfpregs_supplies (regnum)) + if (regnum == -1 || getfpregs_supplies (gdbarch, regnum)) { struct fpreg fpregs; |