* blockframe.c (inside_main_func): No longer use symbol_lookup()
[deliverable/binutils-gdb.git] / gdb / mips-nat.c
index 545c74171c382c01db4f4bd49d9aa3e45df9e704..4c359860ef2cd7024baf39fa0769e1db029c4cdf 100644 (file)
 /* Map gdb internal register number to ptrace ``address''.
    These ``addresses'' are defined in DECstation <sys/ptrace.h> */
 
-#define REGISTER_PTRACE_ADDR(regno) \
-   (regno < 32 ?               GPR_BASE + regno \
-  : regno == PC_REGNUM ?       PC      \
-  : regno == CAUSE_REGNUM ?    CAUSE   \
-  : regno == HI_REGNUM ?       MMHI    \
-  : regno == LO_REGNUM ?       MMLO    \
-  : regno == FCRCS_REGNUM ?    FPC_CSR \
-  : regno == FCRIR_REGNUM ?    FPC_EIR \
-  : regno >= FP0_REGNUM ?      FPR_BASE + (regno - FP0_REGNUM) \
-  : 0)
-
-static char zerobuf[MAX_REGISTER_RAW_SIZE] =
-{0};
+static int
+register_ptrace_addr (int regno)
+{
+  return (regno < 32 ? GPR_BASE + regno
+         : regno == PC_REGNUM ? PC
+         : regno == CAUSE_REGNUM ? CAUSE
+         : regno == HI_REGNUM ? MMHI
+         : regno == LO_REGNUM ? MMLO
+         : regno == FCRCS_REGNUM ? FPC_CSR
+         : regno == FCRIR_REGNUM ? FPC_EIR
+         : regno >= FP0_REGNUM ? FPR_BASE + (regno - FP0_REGNUM)
+         : 0);
+}
 
 static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
 
@@ -72,16 +72,18 @@ static void fetch_core_registers (char *, unsigned, int, CORE_ADDR);
 void
 fetch_inferior_registers (int regno)
 {
-  register unsigned int regaddr;
-  char buf[MAX_REGISTER_RAW_SIZE];
-  register int i;
+  unsigned int regaddr;
+  char buf[MAX_REGISTER_SIZE];
+  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))
+      regaddr = register_ptrace_addr (regno);
+      for (i = 0; i < DEPRECATED_REGISTER_RAW_SIZE (regno); i += sizeof (int))
        {
          *(int *) &buf[i] = ptrace (PT_READ_U, PIDGET (inferior_ptid),
                                     (PTRACE_ARG3_TYPE) regaddr, 0);
@@ -92,7 +94,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.
@@ -102,17 +104,17 @@ fetch_inferior_registers (int regno)
 void
 store_inferior_registers (int regno)
 {
-  register unsigned int regaddr;
+  unsigned int regaddr;
   char buf[80];
 
   if (regno > 0)
     {
       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);
+      regaddr = register_ptrace_addr (regno);
       errno = 0;
       ptrace (PT_WRITE_U, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr,
              read_register (regno));
@@ -148,7 +150,7 @@ get_longjmp_target (CORE_ADDR *pc)
                          TARGET_PTR_BIT / TARGET_CHAR_BIT))
     return 0;
 
-  *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
+  *pc = extract_unsigned_integer (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
 
   return 1;
 }
@@ -170,10 +172,14 @@ static void
 fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
                      CORE_ADDR reg_addr)
 {
-  register int regno;
-  register unsigned int addr;
+  int regno;
+  unsigned int addr;
   int bad_reg = -1;
-  register reg_ptr = -reg_addr;        /* Original u.u_ar0 is -reg_addr. */
+  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,
@@ -207,7 +213,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.
This page took 0.026039 seconds and 4 git commands to generate.