* inferior.h (ARCH_NUM_REGS): New macro, actual number of
authorStan Shebs <shebs@codesourcery.com>
Sun, 17 Jul 1994 00:00:36 +0000 (00:00 +0000)
committerStan Shebs <shebs@codesourcery.com>
Sun, 17 Jul 1994 00:00:36 +0000 (00:00 +0000)
registers in use by the inferior.
* coredep.c (fetch_core_registers, register_addr): Use it.
* findvar.c (registers_changed, registers_fetched,
read_register_bytes): Ditto.
* infcmd.c (do_registers_info, registers_info): Ditto.
* infptrace.c (fetch_inferior_registers,
store_inferior_registers): Ditto.
* stack.c (frame_info): Ditto.

* coredep.c (CORE_REGISTER_ADDR): New macro.
(fetch_core_registers): Use it.

gdb/ChangeLog
gdb/coredep.c

index 47342321548246b8228754d632667cc6317efa5e..85bf2c96baa9401993989ce69d4d7ac8a8ae3768 100644 (file)
@@ -1,5 +1,18 @@
 Sat Jul 16 14:43:17 1994  Stan Shebs  (shebs@andros.cygnus.com)
 
+       * inferior.h (ARCH_NUM_REGS): New macro, actual number of
+       registers in use by the inferior.
+       * coredep.c (fetch_core_registers, register_addr): Use it.
+       * findvar.c (registers_changed, registers_fetched,
+       read_register_bytes): Ditto.
+       * infcmd.c (do_registers_info, registers_info): Ditto.
+       * infptrace.c (fetch_inferior_registers,
+       store_inferior_registers): Ditto.
+       * stack.c (frame_info): Ditto.
+
+       * coredep.c (CORE_REGISTER_ADDR): New macro.
+       (fetch_core_registers): Use it.
+
        * breakpoint.c (ignore, condition): Add usage notes to help strings.
        * symfile.c (add-symbol-file): Add usage note to help string.
        (add_shared_symbol_files_command): New command.
index ae309800c8fecd70e32f09c410db3f90df06a974..b2019e1b498f766080f439734fb8e9bb36a394be 100644 (file)
@@ -41,6 +41,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #endif /* NO_PTRACE_H */
 #endif
 
+#ifndef CORE_REGISTER_ADDR
+#define CORE_REGISTER_ADDR(regno, regptr) register_addr(regno, regptr)
+#endif /* CORE_REGISTER_ADDR */
+
 #ifdef NEED_SYS_CORE_H
 #include <sys/core.h>
 #endif
@@ -69,19 +73,20 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
   register unsigned int addr;
   int bad_reg = -1;
   register reg_ptr = -reg_addr;                /* Original u.u_ar0 is -reg_addr. */
+  int numregs = ARCH_NUM_REGS;
 
   /* 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
-     register_addr to offset to the other registers.  If this is a modern
+     CORE_REGISTER_ADDR to offset to the other registers.  If this is a modern
      core file without a upage, reg_ptr will be zero and this is all a big
      NOP.  */
   if (reg_ptr > core_reg_size)
     reg_ptr -= KERNEL_U_ADDR;
 
-  for (regno = 0; regno < NUM_REGS; regno++)
+  for (regno = 0; regno < numregs; regno++)
     {
-      addr = register_addr (regno, reg_ptr);
+      addr = CORE_REGISTER_ADDR (regno, reg_ptr);
       if (addr >= core_reg_size) {
        if (bad_reg < 0)
          bad_reg = regno;
@@ -108,7 +113,7 @@ register_addr (regno, blockend)
 {
   int addr;
 
-  if (regno < 0 || regno >= NUM_REGS)
+  if (regno < 0 || regno >= ARCH_NUM_REGS)
     error ("Invalid register number %d.", regno);
 
   REGISTER_U_ADDR (addr, blockend, regno);