* amd64-tdep.c (amd64_frame_cache): Fix comment.
[deliverable/binutils-gdb.git] / gdb / mipsnbsd-tdep.c
index 3367e361bc6539b551f83e5b85b59876d865383d..01d8262eff2fd5b256760b6a49abeaa93bb1b99f 100644 (file)
@@ -1,5 +1,5 @@
 /* Target-dependent code for MIPS systems running NetBSD.
-   Copyright 2002 Free Software Foundation, Inc.
+   Copyright 2002, 2003 Free Software Foundation, Inc.
    Contributed by Wasabi Systems, Inc.
 
    This file is part of GDB.
@@ -46,7 +46,7 @@ mipsnbsd_supply_reg (char *regs, int regno)
          if (CANNOT_FETCH_REGISTER (i))
            supply_register (i, NULL);
          else
-            supply_register (i, regs + (i * MIPS_REGSIZE));
+            supply_register (i, regs + (i * mips_regsize (current_gdbarch)));
         }
     }
 }
@@ -58,7 +58,7 @@ mipsnbsd_fill_reg (char *regs, int regno)
 
   for (i = 0; i <= PC_REGNUM; i++)
     if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
-      regcache_collect (i, regs + (i * MIPS_REGSIZE));
+      regcache_collect (i, regs + (i * mips_regsize (current_gdbarch)));
 }
 
 void
@@ -66,14 +66,16 @@ mipsnbsd_supply_fpreg (char *fpregs, int regno)
 {
   int i;
 
-  for (i = FP0_REGNUM; i <= FCRIR_REGNUM; i++)
+  for (i = FP0_REGNUM;
+       i <= mips_regnum (current_gdbarch)->fp_implementation_revision;
+       i++)
     {
       if (regno == i || regno == -1)
        {
          if (CANNOT_FETCH_REGISTER (i))
            supply_register (i, NULL);
          else
-            supply_register (i, fpregs + ((i - FP0_REGNUM) * MIPS_REGSIZE));
+            supply_register (i, fpregs + ((i - FP0_REGNUM) * mips_regsize (current_gdbarch)));
        }
     }
 }
@@ -83,9 +85,10 @@ mipsnbsd_fill_fpreg (char *fpregs, int regno)
 {
   int i;
 
-  for (i = FP0_REGNUM; i <= FCRCS_REGNUM; i++)
+  for (i = FP0_REGNUM; i <= mips_regnum (current_gdbarch)->fp_control_status;
+       i++)
     if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
-      regcache_collect (i, fpregs + ((i - FP0_REGNUM) * MIPS_REGSIZE));
+      regcache_collect (i, fpregs + ((i - FP0_REGNUM) * mips_regsize (current_gdbarch)));
 }
 
 static void
@@ -105,7 +108,7 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
   mipsnbsd_supply_reg (regs, -1);
 
   /* Floating point registers.  */
-  mipsnbsd_supply_fpreg (regs, -1);
+  mipsnbsd_supply_fpreg (fpregs, -1);
 }
 
 static void
@@ -232,7 +235,7 @@ mipsnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
    success.  */
 
 #define NBSD_MIPS_JB_PC                        (2 * 4)
-#define NBSD_MIPS_JB_ELEMENT_SIZE      MIPS_REGSIZE
+#define NBSD_MIPS_JB_ELEMENT_SIZE      mips_regsize (current_gdbarch)
 #define NBSD_MIPS_JB_OFFSET            (NBSD_MIPS_JB_PC * \
                                         NBSD_MIPS_JB_ELEMENT_SIZE)
 
@@ -250,7 +253,7 @@ mipsnbsd_get_longjmp_target (CORE_ADDR *pc)
                          NBSD_MIPS_JB_ELEMENT_SIZE))
     return 0;
 
-  *pc = extract_address (buf, NBSD_MIPS_JB_ELEMENT_SIZE);
+  *pc = extract_unsigned_integer (buf, NBSD_MIPS_JB_ELEMENT_SIZE);
 
   return 1;
 }
@@ -258,17 +261,15 @@ mipsnbsd_get_longjmp_target (CORE_ADDR *pc)
 static int
 mipsnbsd_cannot_fetch_register (int regno)
 {
-  return (regno >= FP_REGNUM
-         || regno == ZERO_REGNUM
-         || regno == FCRIR_REGNUM);
+  return (regno == ZERO_REGNUM
+         || regno == mips_regnum (current_gdbarch)->fp_implementation_revision);
 }
 
 static int
 mipsnbsd_cannot_store_register (int regno)
 {
-  return (regno >= FP_REGNUM
-         || regno == ZERO_REGNUM
-         || regno == FCRIR_REGNUM);
+  return (regno == ZERO_REGNUM
+         || regno == mips_regnum (current_gdbarch)->fp_implementation_revision);
 }
 
 /* NetBSD/mips uses a slightly different link_map structure from the
@@ -361,7 +362,7 @@ mipsnbsd_init_abi (struct gdbarch_info info,
 void
 _initialize_mipsnbsd_tdep (void)
 {
-  gdbarch_register_osabi (bfd_arch_mips, GDB_OSABI_NETBSD_ELF,
+  gdbarch_register_osabi (bfd_arch_mips, 0, GDB_OSABI_NETBSD_ELF,
                          mipsnbsd_init_abi);
 
   add_core_fns (&mipsnbsd_core_fns);
This page took 0.025092 seconds and 4 git commands to generate.