2003-04-13 Michael Snyder <msnyder@redhat.com>
[binutils-gdb.git] / gdb / mips-nat.c
index 895db11793b8b19bf18704de1f244cbe800e6d42..1a29c3e317a282b0da8634f0a8dc534ecc7c2176 100644 (file)
@@ -1,6 +1,6 @@
 /* Low level DECstation interface to ptrace, for GDB when running native.
-   Copyright 1988, 1989, 1991, 1992, 1995, 2001 Free Software
-   Foundation, Inc.
+   Copyright 1988, 1989, 1991, 1992, 1993, 1995, 1996, 1999, 2000, 2001
+   Free Software Foundation, Inc.
    Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU
    and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin.
 
@@ -62,9 +62,6 @@
   : regno >= FP0_REGNUM ?      FPR_BASE + (regno - FP0_REGNUM) \
   : 0)
 
-static char zerobuf[MAX_REGISTER_RAW_SIZE] =
-{0};
-
 static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
 
 /* Get all registers from the inferior */
@@ -73,17 +70,19 @@ void
 fetch_inferior_registers (int regno)
 {
   register unsigned int regaddr;
-  char buf[MAX_REGISTER_RAW_SIZE];
+  char buf[MAX_REGISTER_SIZE];
   register int i;
+  char zerobuf[MAX_REGISTER_SIZE];
+  memset (zerobuf, 0, MAX_REGISTER_SIZE);
 
-  registers_fetched ();
+  deprecated_registers_fetched ();
 
   for (regno = 1; regno < NUM_REGS; regno++)
     {
       regaddr = REGISTER_PTRACE_ADDR (regno);
       for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
        {
-         *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid,
+         *(int *) &buf[i] = ptrace (PT_READ_U, PIDGET (inferior_ptid),
                                     (PTRACE_ARG3_TYPE) regaddr, 0);
          regaddr += sizeof (int);
        }
@@ -92,7 +91,7 @@ fetch_inferior_registers (int regno)
 
   supply_register (ZERO_REGNUM, zerobuf);
   /* Frame ptr reg must appear to be 0; it is faked by stack handling code. */
-  supply_register (FP_REGNUM, zerobuf);
+  supply_register (DEPRECATED_FP_REGNUM, zerobuf);
 }
 
 /* Store our register values back into the inferior.
@@ -109,12 +108,12 @@ store_inferior_registers (int regno)
     {
       if (regno == ZERO_REGNUM || regno == PS_REGNUM
          || regno == BADVADDR_REGNUM || regno == CAUSE_REGNUM
-         || regno == FCRIR_REGNUM || regno == FP_REGNUM
+         || regno == FCRIR_REGNUM || regno == DEPRECATED_FP_REGNUM
          || (regno >= FIRST_EMBED_REGNUM && regno <= LAST_EMBED_REGNUM))
        return;
       regaddr = REGISTER_PTRACE_ADDR (regno);
       errno = 0;
-      ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
+      ptrace (PT_WRITE_U, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr,
              read_register (regno));
       if (errno != 0)
        {
@@ -175,6 +174,10 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
   int bad_reg = -1;
   register reg_ptr = -reg_addr;        /* Original u.u_ar0 is -reg_addr. */
 
+  char zerobuf[MAX_REGISTER_SIZE];
+  memset (zerobuf, 0, MAX_REGISTER_SIZE);
+
+
   /* If u.u_ar0 was an absolute address in the core file, relativize it now,
      so we can use it as an offset into core_reg_sect.  When we're done,
      "register 0" will be at core_reg_sect+reg_ptr, and we can use
@@ -207,7 +210,7 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
     }
   supply_register (ZERO_REGNUM, zerobuf);
   /* Frame ptr reg must appear to be 0; it is faked by stack handling code. */
-  supply_register (FP_REGNUM, zerobuf);
+  supply_register (DEPRECATED_FP_REGNUM, zerobuf);
 }
 
 /* Return the address in the core dump or inferior of register REGNO.