Use get_frame_register_value instead of deprecated_frame_register_read
authorYao Qi <yao.qi@linaro.org>
Tue, 8 Nov 2016 15:58:47 +0000 (15:58 +0000)
committerYao Qi <yao.qi@linaro.org>
Tue, 8 Nov 2016 15:58:47 +0000 (15:58 +0000)
This patch calls get_frame_register_value instead of
deprecated_frame_register_read, so that we can pass
value_contents_for_printing to val_print.  Both
get_frame_register_value and deprecated_frame_register_read call
frame_unwind_register_value indirectly, so no functionality is changed
by this patch.

gdb:

2016-11-08  Yao Qi  <yao.qi@linaro.org>

* mt-tdep.c (mt_registers_info): Call
get_frame_register_value instead of
deprecated_frame_register_read.
* sh64-tdep.c (sh64_do_register): Likewise.

gdb/ChangeLog
gdb/mt-tdep.c
gdb/sh64-tdep.c

index 9036413bc9de82c5dcbda74efad15ba3a92dbd6a..227431fc0a4d694de2cff055f6d74d695dd05165 100644 (file)
@@ -1,3 +1,10 @@
+2016-11-08  Yao Qi  <yao.qi@linaro.org>
+
+       * mt-tdep.c (mt_registers_info): Call
+       get_frame_register_value instead of
+       deprecated_frame_register_read.
+       * sh64-tdep.c (sh64_do_register): Likewise.
+
 2016-11-08  Pedro Alves  <palves@redhat.com>
 
        * ax.h (agent_expr_p): Delete.
index 95dd6816a79fd85154b0e512a792f4107dc7f5ac..c08e80567eacb3cd732d92cddb96eb66b8254595 100644 (file)
@@ -712,11 +712,10 @@ mt_registers_info (struct gdbarch *gdbarch,
                || regnum == MT_COPRO_PSEUDOREG_REGNUM)
        {
          /* Special output handling for the 'coprocessor' register.  */
-         gdb_byte *buf;
          struct value_print_options opts;
+         struct value *val;
 
-         buf = (gdb_byte *) alloca (register_size (gdbarch, MT_COPRO_REGNUM));
-         deprecated_frame_register_read (frame, MT_COPRO_REGNUM, buf);
+         val = get_frame_register_value (frame, MT_COPRO_REGNUM);
          /* And print.  */
          regnum = MT_COPRO_PSEUDOREG_REGNUM;
          fputs_filtered (gdbarch_register_name (gdbarch, regnum),
@@ -726,8 +725,9 @@ mt_registers_info (struct gdbarch *gdbarch,
                                 file);
          get_no_prettyformat_print_options (&opts);
          opts.deref_ref = 1;
-         val_print (register_type (gdbarch, regnum), buf,
-                    0, 0, file, 0, NULL,
+         val_print (register_type (gdbarch, regnum),
+                    value_contents_for_printing (val),
+                    0, 0, file, 0, val,
                     &opts, current_language);
          fputs_filtered ("\n", file);
        }
index cbbefddfe51655beeccb584043b8129e593405cd..9054e20f475a773bbd4cce15c12e144e36d6de6c 100644 (file)
@@ -2030,15 +2030,16 @@ static void
 sh64_do_register (struct gdbarch *gdbarch, struct ui_file *file,
                  struct frame_info *frame, int regnum)
 {
-  unsigned char raw_buffer[MAX_REGISTER_SIZE];
   struct value_print_options opts;
+  struct value *val;
 
   fputs_filtered (gdbarch_register_name (gdbarch, regnum), file);
   print_spaces_filtered (15 - strlen (gdbarch_register_name
                                      (gdbarch, regnum)), file);
 
   /* Get the data in raw format.  */
-  if (!deprecated_frame_register_read (frame, regnum, raw_buffer))
+  val = get_frame_register_value (frame, regnum);
+  if (value_optimized_out (val) || !value_entirely_available (val))
     {
       fprintf_filtered (file, "*value not available*\n");
       return;
@@ -2046,13 +2047,15 @@ sh64_do_register (struct gdbarch *gdbarch, struct ui_file *file,
 
   get_formatted_print_options (&opts, 'x');
   opts.deref_ref = 1;
-  val_print (register_type (gdbarch, regnum), raw_buffer, 0, 0,
-            file, 0, NULL, &opts, current_language);
+  val_print (register_type (gdbarch, regnum),
+            value_contents_for_printing (val), 0, 0,
+            file, 0, val, &opts, current_language);
   fprintf_filtered (file, "\t");
   get_formatted_print_options (&opts, 0);
   opts.deref_ref = 1;
-  val_print (register_type (gdbarch, regnum), raw_buffer, 0, 0,
-            file, 0, NULL, &opts, current_language);
+  val_print (register_type (gdbarch, regnum),
+            value_contents_for_printing (val), 0, 0,
+            file, 0, val, &opts, current_language);
   fprintf_filtered (file, "\n");
 }