2003-05-02 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Sat, 3 May 2003 00:26:34 +0000 (00:26 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sat, 3 May 2003 00:26:34 +0000 (00:26 +0000)
* std-regs.c (value_of_builtin_frame_pc_reg): Delete #ifdef
PC_REGNUM, re-indent.
* stack.c (frame_info): Use "pc" for the name of get_frame_pc when
PC_REGNUM isn't set.

gdb/ChangeLog
gdb/stack.c
gdb/std-regs.c

index d861069962174baee9bcf708e5ba623fbbc3e178..d32da66ffdda9b5023bfeff1b64dd7833423701e 100644 (file)
@@ -1,5 +1,10 @@
 2003-05-02  Andrew Cagney  <cagney@redhat.com>
 
+       * std-regs.c (value_of_builtin_frame_pc_reg): Delete #ifdef
+       PC_REGNUM, re-indent.
+       * stack.c (frame_info): Use "pc" for the name of get_frame_pc when
+       PC_REGNUM isn't set.
+
        * gdbarch.sh (REGISTER_SIZE, REGISTER_BYTES): Make optional.
        * gdbarch.h, gdbarch.c: Re-generate.
        * d10v-tdep.c (d10v_gdbarch_init): Do not set register_size,
index 2cb9a95dc3dcd45535ffe942fdf0ea466b4566b0..cfb3605d73ab2d2a8a6842c2961fb817a10b84ec 100644 (file)
@@ -614,10 +614,25 @@ frame_info (char *addr_exp, int from_tty)
   int i, count, numregs;
   char *funname = 0;
   enum language funlang = language_unknown;
+  const char *pc_regname;
 
   if (!target_has_stack)
     error ("No stack.");
 
+  /* Name of the value returned by get_frame_pc().  Per comments, "pc"
+     is not a good name.  */
+  if (PC_REGNUM >= 0)
+    /* OK, this is weird.  The PC_REGNUM hardware register's value can
+       easily not match that of the internal value returned by
+       get_frame_pc().  */
+    pc_regname = REGISTER_NAME (PC_REGNUM);
+  else
+    /* But then, this is weird to.  Even without PC_REGNUM, an
+       architectures will often have a hardware register called "pc",
+       and that register's value, again, can easily not match
+       get_frame_pc().  */
+    pc_regname = "pc";
+
   fi = parse_frame_specification (addr_exp);
   if (fi == NULL)
     error ("Invalid frame specified.");
@@ -680,7 +695,7 @@ frame_info (char *addr_exp, int from_tty)
       print_address_numeric (get_frame_base (fi), 1, gdb_stdout);
       printf_filtered (":\n");
     }
-  printf_filtered (" %s = ", REGISTER_NAME (PC_REGNUM));
+  printf_filtered (" %s = ", pc_regname);
   print_address_numeric (get_frame_pc (fi), 1, gdb_stdout);
 
   wrap_here ("   ");
@@ -695,7 +710,7 @@ frame_info (char *addr_exp, int from_tty)
     printf_filtered (" (%s:%d)", sal.symtab->filename, sal.line);
   puts_filtered ("; ");
   wrap_here ("    ");
-  printf_filtered ("saved %s ", REGISTER_NAME (PC_REGNUM));
+  printf_filtered ("saved %s ", pc_regname);
   print_address_numeric (frame_pc_unwind (fi), 1, gdb_stdout);
   printf_filtered ("\n");
 
index 9f6f9acb1094f21a1b197a4a452b03003c388873..93d5102661c8b3f2dfd50fc43ecae7cb9f7132a1 100644 (file)
@@ -98,20 +98,19 @@ value_of_builtin_frame_fp_reg (struct frame_info *frame)
 static struct value *
 value_of_builtin_frame_pc_reg (struct frame_info *frame)
 {
-#ifdef PC_REGNUM
   if (PC_REGNUM >= 0)
     return value_of_register (PC_REGNUM, frame);
-#endif
-  {
-    struct value *val = allocate_value (builtin_type_void_data_ptr);
-    char *buf = VALUE_CONTENTS_RAW (val);
-    if (frame == NULL)
-      memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0);
-    else
-      ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf,
-                         get_frame_pc (frame));
-    return val;
-  }
+  else
+    {
+      struct value *val = allocate_value (builtin_type_void_data_ptr);
+      char *buf = VALUE_CONTENTS_RAW (val);
+      if (frame == NULL)
+       memset (buf, TYPE_LENGTH (VALUE_TYPE (val)), 0);
+      else
+       ADDRESS_TO_POINTER (builtin_type_void_data_ptr, buf,
+                           get_frame_pc (frame));
+      return val;
+    }
 }
 
 static struct value *