X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsparc64nbsd-nat.c;h=b37965cf10ec67a18e5fbfdf91cb76a39c680522;hb=eb80cb87518e29417d8d25996617f665e8c7d898;hp=246e922ea8050f1b36bcbfac6211a88021fa759a;hpb=a9762ec78a53fbe9209fe1654db42df0cd328d50;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc64nbsd-nat.c b/gdb/sparc64nbsd-nat.c index 246e922ea8..b37965cf10 100644 --- a/gdb/sparc64nbsd-nat.c +++ b/gdb/sparc64nbsd-nat.c @@ -1,6 +1,6 @@ /* Native-dependent code for NetBSD/sparc64. - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. This file is part of GDB. @@ -34,7 +34,7 @@ sparc64nbsd_supply_gregset (const struct sparc_gregset *gregset, struct regcache *regcache, int regnum, const void *gregs) { - int sparc32 = (gdbarch_ptr_bit (current_gdbarch) == 32); + int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32); if (sparc32) sparc32_supply_gregset (&sparc32nbsd_gregset, regcache, regnum, gregs); @@ -47,7 +47,7 @@ sparc64nbsd_collect_gregset (const struct sparc_gregset *gregset, const struct regcache *regcache, int regnum, void *gregs) { - int sparc32 = (gdbarch_ptr_bit (current_gdbarch) == 32); + int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32); if (sparc32) sparc32_collect_gregset (&sparc32nbsd_gregset, regcache, regnum, gregs); @@ -59,7 +59,7 @@ static void sparc64nbsd_supply_fpregset (struct regcache *regcache, int regnum, const void *fpregs) { - int sparc32 = (gdbarch_ptr_bit (current_gdbarch) == 32); + int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32); if (sparc32) sparc32_supply_fpregset (regcache, regnum, fpregs); @@ -71,7 +71,7 @@ static void sparc64nbsd_collect_fpregset (const struct regcache *regcache, int regnum, void *fpregs) { - int sparc32 = (gdbarch_ptr_bit (current_gdbarch) == 32); + int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32); if (sparc32) sparc32_collect_fpregset (regcache, regnum, fpregs); @@ -82,10 +82,10 @@ sparc64nbsd_collect_fpregset (const struct regcache *regcache, /* Determine whether `gregset_t' contains register REGNUM. */ static int -sparc64nbsd_gregset_supplies_p (int regnum) +sparc64nbsd_gregset_supplies_p (struct gdbarch *gdbarch, int regnum) { - if (gdbarch_ptr_bit (current_gdbarch) == 32) - return sparc32_gregset_supplies_p (regnum); + if (gdbarch_ptr_bit (gdbarch) == 32) + return sparc32_gregset_supplies_p (gdbarch, regnum); /* Integer registers. */ if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_G7_REGNUM) @@ -107,10 +107,10 @@ sparc64nbsd_gregset_supplies_p (int regnum) /* Determine whether `fpregset_t' contains register REGNUM. */ static int -sparc64nbsd_fpregset_supplies_p (int regnum) +sparc64nbsd_fpregset_supplies_p (struct gdbarch *gdbarch, int regnum) { - if (gdbarch_ptr_bit (current_gdbarch) == 32) - return sparc32_fpregset_supplies_p (regnum); + if (gdbarch_ptr_bit (gdbarch) == 32) + return sparc32_fpregset_supplies_p (gdbarch, regnum); /* Floating-point registers. */ if ((regnum >= SPARC_F0_REGNUM && regnum <= SPARC_F31_REGNUM) @@ -140,9 +140,9 @@ sparc64nbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) /* The following is true for NetBSD 1.6.2: - The pcb contains %sp and %pc, %psr and %wim. From this information - we reconstruct the register state as it would look when we just - returned from cpu_switch(). */ + The pcb contains %sp and %pc, %pstate and %cwp. From this + information we reconstruct the register state as it would look + when we just returned from cpu_switch(). */ /* The stack pointer shouldn't be zero. */ if (pcb->pcb_sp == 0) @@ -154,7 +154,6 @@ sparc64nbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb) read_memory(pcb->pcb_sp + BIAS - 176 + (11 * 8), (gdb_byte *)&pcb->pcb_pc, sizeof pcb->pcb_pc); - regcache_raw_supply (regcache, SPARC_SP_REGNUM, &pcb->pcb_sp); regcache_raw_supply (regcache, SPARC64_PC_REGNUM, &pcb->pcb_pc);