aboutsummaryrefslogtreecommitdiff
path: root/gdb/std-regs.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/std-regs.c')
-rw-r--r--gdb/std-regs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/std-regs.c b/gdb/std-regs.c
index ac30bbd..8f0d444 100644
--- a/gdb/std-regs.c
+++ b/gdb/std-regs.c
@@ -32,6 +32,7 @@ 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
@@ -46,6 +47,7 @@ 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
@@ -59,6 +61,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
@@ -66,6 +69,7 @@ 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
@@ -79,6 +83,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"));
@@ -88,6 +93,7 @@ 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"));