diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 74101039c9..f4857e32f3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-07-16 Pierre Langlois + + * aarch64-tdep.c (aarch64_pseudo_read_value): Mark S register as + unavailable if invalid. + 2015-07-15 Jan Kratochvil Revert the previous 6 commits: diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 2cecad0f85..cec4d3e9e4 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -2482,7 +2482,11 @@ aarch64_pseudo_read_value (struct gdbarch *gdbarch, v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_S0_REGNUM; status = regcache_raw_read (regcache, v_regnum, reg_buf); - memcpy (buf, reg_buf, S_REGISTER_SIZE); + if (status != REG_VALID) + mark_value_bytes_unavailable (result_value, 0, + TYPE_LENGTH (value_type (result_value))); + else + memcpy (buf, reg_buf, S_REGISTER_SIZE); return result_value; }