Remove MAX_REGISTER_SIZE from target.c
authorAlan Hayward <alan.hayward@arm.com>
Fri, 24 Mar 2017 16:53:05 +0000 (16:53 +0000)
committerAlan Hayward <alan.hayward@arm.com>
Fri, 24 Mar 2017 16:53:05 +0000 (16:53 +0000)
gdb/
* regcache.c (regcache_debug_print_register): New function.
* regcache.h (regcache_debug_print_register): New declaration.
* target.c (debug_print_register): Remove.
(target_fetch_registers): Call regcache_debug_print_register.
(target_store_registers): Likewise.

gdb/ChangeLog
gdb/regcache.c
gdb/regcache.h
gdb/target.c

index dd12d3c1b12031f6b5641c643191cd1ddc542a2f..a687fae5a4109c9dd7ca401b1a0bcc8ea1d195df 100644 (file)
@@ -1,3 +1,11 @@
+2017-03-24  Alan Hayward  <alan.hayward@arm.com>
+
+       * regcache.c (regcache_debug_print_register): New function.
+       * regcache.h (regcache_debug_print_register): New declaration.
+       * target.c (debug_print_register): Remove.
+       (target_fetch_registers): Call regcache_debug_print_register.
+       (target_store_registers): Likewise.
+
 2017-03-24  Pádraig Brady  <pbrady@fb.com>
 
        * dwarf2read.c (setup_type_unit_groups): Ensure dir_index doesn't
index 71223a1dc498e526c2f295b9e4ddd4b18ddadcb9..37bc2f004616397e6a83a50cd5ebd162bb6fd33d 100644 (file)
@@ -1258,6 +1258,41 @@ regcache_write_pc (struct regcache *regcache, CORE_ADDR pc)
   reinit_frame_cache ();
 }
 
+void
+regcache_debug_print_register (const char *func, struct regcache *regcache,
+                              int regno)
+{
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+
+  fprintf_unfiltered (gdb_stdlog, "%s ", func);
+  if (regno >= 0 && regno < gdbarch_num_regs (gdbarch)
+      && gdbarch_register_name (gdbarch, regno) != NULL
+      && gdbarch_register_name (gdbarch, regno)[0] != '\0')
+    fprintf_unfiltered (gdb_stdlog, "(%s)",
+                       gdbarch_register_name (gdbarch, regno));
+  else
+    fprintf_unfiltered (gdb_stdlog, "(%d)", regno);
+  if (regno >= 0 && regno < gdbarch_num_regs (gdbarch))
+    {
+      enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+      int size = register_size (gdbarch, regno);
+      gdb_byte *buf = register_buffer (regcache, regno);
+
+      fprintf_unfiltered (gdb_stdlog, " = ");
+      for (int i = 0; i < size; i++)
+       {
+         fprintf_unfiltered (gdb_stdlog, "%02x", buf[i]);
+       }
+      if (size <= sizeof (LONGEST))
+       {
+         ULONGEST val = extract_unsigned_integer (buf, size, byte_order);
+
+         fprintf_unfiltered (gdb_stdlog, " %s %s",
+                             core_addr_to_string_nz (val), plongest (val));
+       }
+    }
+  fprintf_unfiltered (gdb_stdlog, "\n");
+}
 
 static void
 reg_flush_command (char *command, int from_tty)
index d0107cd76e349f2bd76868dbd5b27127b8277870..1d60fa7616a975aebf032c921a330ab1a4f9ff2f 100644 (file)
@@ -236,4 +236,10 @@ extern void regcache_cpy (struct regcache *dest, struct regcache *src);
 extern void registers_changed (void);
 extern void registers_changed_ptid (ptid_t);
 
+/* Dump the contents of a register from the register cache to the target
+   debug.  */
+extern void regcache_debug_print_register (const char *func,
+                                          struct regcache *regcache,
+                                          int regno);
+
 #endif /* REGCACHE_H */
index 0ff8515d3b731ff5929e5c9c68a20d124c1ecd67..7c286ab6bf821ced42a0c1ac945343b761a37157 100644 (file)
@@ -3547,49 +3547,12 @@ target_options_to_string (int target_options)
   return ret;
 }
 
-static void
-debug_print_register (const char * func,
-                     struct regcache *regcache, int regno)
-{
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-
-  fprintf_unfiltered (gdb_stdlog, "%s ", func);
-  if (regno >= 0 && regno < gdbarch_num_regs (gdbarch)
-      && gdbarch_register_name (gdbarch, regno) != NULL
-      && gdbarch_register_name (gdbarch, regno)[0] != '\0')
-    fprintf_unfiltered (gdb_stdlog, "(%s)",
-                       gdbarch_register_name (gdbarch, regno));
-  else
-    fprintf_unfiltered (gdb_stdlog, "(%d)", regno);
-  if (regno >= 0 && regno < gdbarch_num_regs (gdbarch))
-    {
-      enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-      int i, size = register_size (gdbarch, regno);
-      gdb_byte buf[MAX_REGISTER_SIZE];
-
-      regcache_raw_collect (regcache, regno, buf);
-      fprintf_unfiltered (gdb_stdlog, " = ");
-      for (i = 0; i < size; i++)
-       {
-         fprintf_unfiltered (gdb_stdlog, "%02x", buf[i]);
-       }
-      if (size <= sizeof (LONGEST))
-       {
-         ULONGEST val = extract_unsigned_integer (buf, size, byte_order);
-
-         fprintf_unfiltered (gdb_stdlog, " %s %s",
-                             core_addr_to_string_nz (val), plongest (val));
-       }
-    }
-  fprintf_unfiltered (gdb_stdlog, "\n");
-}
-
 void
 target_fetch_registers (struct regcache *regcache, int regno)
 {
   current_target.to_fetch_registers (&current_target, regcache, regno);
   if (targetdebug)
-    debug_print_register ("target_fetch_registers", regcache, regno);
+    regcache_debug_print_register ("target_fetch_registers", regcache, regno);
 }
 
 void
@@ -3601,7 +3564,8 @@ target_store_registers (struct regcache *regcache, int regno)
   current_target.to_store_registers (&current_target, regcache, regno);
   if (targetdebug)
     {
-      debug_print_register ("target_store_registers", regcache, regno);
+      regcache_debug_print_register ("target_store_registers", regcache,
+                                    regno);
     }
 }