[ gas/testsuite/ChangeLog ]
[deliverable/binutils-gdb.git] / gdb / ppcnbsd-tdep.c
index 317cd85afb18bb75443a6afb99c09374b2ea61ba..57ba742c85a5708cc9cf88d0cfc2ae29e1b36029 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for PowerPC systems running NetBSD.
 
-   Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -18,8 +18,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 #include "gdbcore.h"
@@ -58,24 +58,29 @@ ppcnbsd_supply_reg (char *regs, int regno)
   for (i = 0; i < ppc_num_gprs; i++)
     {
       if (regno == tdep->ppc_gp0_regnum + i || regno == -1)
-       supply_register (tdep->ppc_gp0_regnum + i,
-                         regs + REG_FIXREG_OFFSET (i));
+       regcache_raw_supply (current_regcache, tdep->ppc_gp0_regnum + i,
+                            regs + REG_FIXREG_OFFSET (i));
     }
 
   if (regno == tdep->ppc_lr_regnum || regno == -1)
-    supply_register (tdep->ppc_lr_regnum, regs + REG_LR_OFFSET);
+    regcache_raw_supply (current_regcache, tdep->ppc_lr_regnum,
+                        regs + REG_LR_OFFSET);
 
   if (regno == tdep->ppc_cr_regnum || regno == -1)
-    supply_register (tdep->ppc_cr_regnum, regs + REG_CR_OFFSET);
+    regcache_raw_supply (current_regcache, tdep->ppc_cr_regnum,
+                        regs + REG_CR_OFFSET);
 
   if (regno == tdep->ppc_xer_regnum || regno == -1)
-    supply_register (tdep->ppc_xer_regnum, regs + REG_XER_OFFSET);
+    regcache_raw_supply (current_regcache, tdep->ppc_xer_regnum,
+                        regs + REG_XER_OFFSET);
 
   if (regno == tdep->ppc_ctr_regnum || regno == -1)
-    supply_register (tdep->ppc_ctr_regnum, regs + REG_CTR_OFFSET);
+    regcache_raw_supply (current_regcache, tdep->ppc_ctr_regnum,
+                        regs + REG_CTR_OFFSET);
 
   if (regno == PC_REGNUM || regno == -1)
-    supply_register (PC_REGNUM, regs + REG_PC_OFFSET);
+    regcache_raw_supply (current_regcache, PC_REGNUM,
+                        regs + REG_PC_OFFSET);
 }
 
 void
@@ -87,24 +92,28 @@ ppcnbsd_fill_reg (char *regs, int regno)
   for (i = 0; i < ppc_num_gprs; i++)
     {
       if (regno == tdep->ppc_gp0_regnum + i || regno == -1)
-       regcache_collect (tdep->ppc_gp0_regnum + i,
-                          regs + REG_FIXREG_OFFSET (i));
+       regcache_raw_collect (current_regcache, tdep->ppc_gp0_regnum + i,
+                             regs + REG_FIXREG_OFFSET (i));
     }
 
   if (regno == tdep->ppc_lr_regnum || regno == -1)
-    regcache_collect (tdep->ppc_lr_regnum, regs + REG_LR_OFFSET);
+    regcache_raw_collect (current_regcache, tdep->ppc_lr_regnum,
+                         regs + REG_LR_OFFSET);
 
   if (regno == tdep->ppc_cr_regnum || regno == -1)
-    regcache_collect (tdep->ppc_cr_regnum, regs + REG_CR_OFFSET);
+    regcache_raw_collect (current_regcache, tdep->ppc_cr_regnum,
+                         regs + REG_CR_OFFSET);
 
   if (regno == tdep->ppc_xer_regnum || regno == -1)
-    regcache_collect (tdep->ppc_xer_regnum, regs + REG_XER_OFFSET);
+    regcache_raw_collect (current_regcache, tdep->ppc_xer_regnum,
+                         regs + REG_XER_OFFSET);
 
   if (regno == tdep->ppc_ctr_regnum || regno == -1)
-    regcache_collect (tdep->ppc_ctr_regnum, regs + REG_CTR_OFFSET);
+    regcache_raw_collect (current_regcache, tdep->ppc_ctr_regnum,
+                         regs + REG_CTR_OFFSET);
 
   if (regno == PC_REGNUM || regno == -1)
-    regcache_collect (PC_REGNUM, regs + REG_PC_OFFSET);
+    regcache_raw_collect (current_regcache, PC_REGNUM, regs + REG_PC_OFFSET);
 }
 
 void
@@ -128,12 +137,13 @@ ppcnbsd_supply_fpreg (char *fpregs, int regno)
   for (i = 0; i < ppc_num_fprs; i++)
     {
       if (regno == tdep->ppc_fp0_regnum + i || regno == -1)
-       supply_register (tdep->ppc_fp0_regnum + i,
-                         fpregs + FPREG_FPR_OFFSET (i));
+       regcache_raw_supply (current_regcache, tdep->ppc_fp0_regnum + i,
+                            fpregs + FPREG_FPR_OFFSET (i));
     }
 
   if (regno == tdep->ppc_fpscr_regnum || regno == -1)
-    supply_register (tdep->ppc_fpscr_regnum, fpregs + FPREG_FPSCR_OFFSET);
+    regcache_raw_supply (current_regcache, tdep->ppc_fpscr_regnum,
+                        fpregs + FPREG_FPSCR_OFFSET);
 }
 
 void
@@ -157,12 +167,13 @@ ppcnbsd_fill_fpreg (char *fpregs, int regno)
   for (i = 0; i < ppc_num_fprs; i++)
     {
       if (regno == tdep->ppc_fp0_regnum + i || regno == -1)
-       regcache_collect (tdep->ppc_fp0_regnum + i,
-                          fpregs + FPREG_FPR_OFFSET (i));
+       regcache_raw_collect (current_regcache, tdep->ppc_fp0_regnum + i,
+                             fpregs + FPREG_FPR_OFFSET (i));
     }
 
   if (regno == tdep->ppc_fpscr_regnum || regno == -1)
-    regcache_collect (tdep->ppc_fpscr_regnum, fpregs + FPREG_FPSCR_OFFSET);
+    regcache_raw_collect (current_regcache, tdep->ppc_fpscr_regnum,
+                         fpregs + FPREG_FPSCR_OFFSET);
 }
 
 static void
@@ -193,14 +204,14 @@ fetch_elfcore_registers (char *core_reg_sect, unsigned core_reg_size, int which,
     {
     case 0:  /* Integer registers.  */
       if (core_reg_size != SIZEOF_STRUCT_REG)
-       warning ("Wrong size register set in core file.");
+       warning (_("Wrong size register set in core file."));
       else
        ppcnbsd_supply_reg (core_reg_sect, -1);
       break;
 
     case 2:  /* Floating point registers.  */
       if (core_reg_size != SIZEOF_STRUCT_FPREG)
-       warning ("Wrong size FP register set in core file.");
+       warning (_("Wrong size FP register set in core file."));
       else
        ppcnbsd_supply_fpreg (core_reg_sect, -1);
       break;
@@ -235,8 +246,8 @@ static struct core_fns ppcnbsd_elfcore_fns =
 
 static enum return_value_convention
 ppcnbsd_return_value (struct gdbarch *gdbarch, struct type *valtype,
-                     struct regcache *regcache, void *readbuf,
-                     const void *writebuf)
+                     struct regcache *regcache, gdb_byte *readbuf,
+                     const gdb_byte *writebuf)
 {
   if ((TYPE_CODE (valtype) == TYPE_CODE_STRUCT
        || TYPE_CODE (valtype) == TYPE_CODE_UNION)
@@ -293,14 +304,15 @@ ppcnbsd_sigtramp_cache_init (const struct tramp_frame *self,
    instruction, or zero if it isn't a signal trampoline.  */
 
 static const struct tramp_frame ppcnbsd_sigtramp = {
+  SIGTRAMP_FRAME,
   4, /* insn size */
   { /* insn */
-    0x38610018, /* addi r3,r1,24 */
-    0x38000127, /* li r0,295 */
-    0x44000002, /* sc */
-    0x38000001, /* li r0,1 */
-    0x44000002, /* sc */
-    TRAMP_SENTINEL_INSN
+    { 0x38610018, -1 }, /* addi r3,r1,24 */
+    { 0x38000127, -1 }, /* li r0,295 */
+    { 0x44000002, -1 }, /* sc */
+    { 0x38000001, -1 }, /* li r0,1 */
+    { 0x44000002, -1 }, /* sc */
+    { TRAMP_SENTINEL_INSN, -1 }
   },
   ppcnbsd_sigtramp_cache_init
 };
This page took 0.026972 seconds and 4 git commands to generate.