* amd64-tdep.c (amd64_frame_cache): Fix comment.
[deliverable/binutils-gdb.git] / gdb / mipsnbsd-tdep.c
index 1d25e0f6aa0e0d5cf05f18bb124dff683c981b23..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)
 
@@ -259,14 +262,14 @@ static int
 mipsnbsd_cannot_fetch_register (int regno)
 {
   return (regno == ZERO_REGNUM
-         || regno == FCRIR_REGNUM);
+         || regno == mips_regnum (current_gdbarch)->fp_implementation_revision);
 }
 
 static int
 mipsnbsd_cannot_store_register (int regno)
 {
   return (regno == ZERO_REGNUM
-         || regno == FCRIR_REGNUM);
+         || regno == mips_regnum (current_gdbarch)->fp_implementation_revision);
 }
 
 /* NetBSD/mips uses a slightly different link_map structure from the
This page took 0.02493 seconds and 4 git commands to generate.