diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/alpha-nat.c | 9 | ||||
-rw-r--r-- | gdb/alpha-tdep.c | 9 |
3 files changed, 23 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 678ed3b..76c56ea 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2011-05-26 Pedro Alves <pedro@codesourcery.com> + + * alpha-tdep.c (alpha_cannot_fetch_register): Don't return true + for ALPHA_ZERO_REGNUM. + (alpha_supply_int_regs): Explicitly supply zero as the value for + ALPHA_ZERO_REGNUM in the register cache. + * alpha-nat.c (fetch_osf_core_registers): Ditto. + 2011-05-26 Yao Qi <yao@codesourcery.com> * gdb/gdb_thread_db.h: Remove HAVE_UINTPTR_T. diff --git a/gdb/alpha-nat.c b/gdb/alpha-nat.c index 1a55ea9..f548359 100644 --- a/gdb/alpha-nat.c +++ b/gdb/alpha-nat.c @@ -101,6 +101,15 @@ fetch_osf_core_registers (struct regcache *regcache, regcache_raw_supply (regcache, regno, NULL); continue; } + + if (regno == ALPHA_ZERO_REGNUM) + { + const gdb_byte zero[8] = { 0 }; + + regcache_raw_supply (regcache, regno, zero); + continue; + } + addr = 8 * core_reg_mapping[regno]; if (addr < 0 || addr >= core_reg_size) { diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index 10e753b..77782e8 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -111,8 +111,7 @@ alpha_register_name (struct gdbarch *gdbarch, int regno) static int alpha_cannot_fetch_register (struct gdbarch *gdbarch, int regno) { - return (regno == ALPHA_ZERO_REGNUM - || strlen (alpha_register_name (gdbarch, regno)) == 0); + return (strlen (alpha_register_name (gdbarch, regno)) == 0); } static int @@ -1424,7 +1423,11 @@ alpha_supply_int_regs (struct regcache *regcache, int regno, regcache_raw_supply (regcache, i, regs + i * 8); if (regno == ALPHA_ZERO_REGNUM || regno == -1) - regcache_raw_supply (regcache, ALPHA_ZERO_REGNUM, NULL); + { + const gdb_byte zero[8] = { 0 }; + + regcache_raw_supply (regcache, ALPHA_ZERO_REGNUM, zero); + } if (regno == ALPHA_PC_REGNUM || regno == -1) regcache_raw_supply (regcache, ALPHA_PC_REGNUM, pc); |