gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / std-regs.c
index ffa7f711025212cd0204d1f52b7d749ece436a5b..c4220733a819bf008af571798cd8df26435a0933 100644 (file)
@@ -1,6 +1,6 @@
 /* Builtin frame register, for GDB, the GNU debugger.
 
-   Copyright (C) 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
 #include "frame.h"
 #include "gdbtypes.h"
 #include "value.h"
-#include "gdb_string.h"
-
+#include "gdbarch.h"
 
 static struct value *
 value_of_builtin_frame_fp_reg (struct frame_info *frame, const void *baton)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
+
   if (gdbarch_deprecated_fp_regnum (gdbarch) >= 0)
     /* NOTE: cagney/2003-04-24: Since the mere presence of "fp" in the
        register name table overrides this built-in $fp register, there
@@ -45,11 +45,9 @@ value_of_builtin_frame_fp_reg (struct frame_info *frame, const void *baton)
       struct type *data_ptr_type = builtin_type (gdbarch)->builtin_data_ptr;
       struct value *val = allocate_value (data_ptr_type);
       gdb_byte *buf = value_contents_raw (val);
-      if (frame == NULL)
-       memset (buf, 0, TYPE_LENGTH (value_type (val)));
-      else
-       gdbarch_address_to_pointer (gdbarch, data_ptr_type,
-                                   buf, get_frame_base_address (frame));
+
+      gdbarch_address_to_pointer (gdbarch, data_ptr_type,
+                                 buf, get_frame_base_address (frame));
       return val;
     }
 }
@@ -58,6 +56,7 @@ static struct value *
 value_of_builtin_frame_pc_reg (struct frame_info *frame, const void *baton)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
+
   if (gdbarch_pc_regnum (gdbarch) >= 0)
     return value_of_register (gdbarch_pc_regnum (gdbarch), frame);
   else
@@ -65,11 +64,9 @@ value_of_builtin_frame_pc_reg (struct frame_info *frame, const void *baton)
       struct type *func_ptr_type = builtin_type (gdbarch)->builtin_func_ptr;
       struct value *val = allocate_value (func_ptr_type);
       gdb_byte *buf = value_contents_raw (val);
-      if (frame == NULL)
-       memset (buf, 0, TYPE_LENGTH (value_type (val)));
-      else
-       gdbarch_address_to_pointer (gdbarch, func_ptr_type,
-                                   buf, get_frame_pc (frame));
+
+      gdbarch_address_to_pointer (gdbarch, func_ptr_type,
+                                 buf, get_frame_pc (frame));
       return val;
     }
 }
@@ -78,6 +75,7 @@ static struct value *
 value_of_builtin_frame_sp_reg (struct frame_info *frame, const void *baton)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
+
   if (gdbarch_sp_regnum (gdbarch) >= 0)
     return value_of_register (gdbarch_sp_regnum (gdbarch), frame);
   error (_("Standard register ``$sp'' is not available for this target"));
@@ -87,15 +85,15 @@ static struct value *
 value_of_builtin_frame_ps_reg (struct frame_info *frame, const void *baton)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
+
   if (gdbarch_ps_regnum (gdbarch) >= 0)
     return value_of_register (gdbarch_ps_regnum (gdbarch), frame);
   error (_("Standard register ``$ps'' is not available for this target"));
 }
 
-extern initialize_file_ftype _initialize_frame_reg; /* -Wmissing-prototypes */
-
+void _initialize_frame_reg ();
 void
-_initialize_frame_reg (void)
+_initialize_frame_reg ()
 {
   /* Frame based $fp, $pc, $sp and $ps.  These only come into play
      when the target does not define its own version of these
This page took 0.026083 seconds and 4 git commands to generate.