diff options
author | Mark Kettenis <kettenis@gnu.org> | 2011-05-21 19:19:45 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2011-05-21 19:19:45 +0000 |
commit | 22e74ef9b59080f4cf880185ec09c483952eb74f (patch) | |
tree | e0a093b1eb13b08b7f5e5c213aee58bcf4ea00fe | |
parent | b71457c579b2c672a88c35a3886a2704ab52ad4e (diff) | |
download | fsf-binutils-gdb-22e74ef9b59080f4cf880185ec09c483952eb74f.zip fsf-binutils-gdb-22e74ef9b59080f4cf880185ec09c483952eb74f.tar.gz fsf-binutils-gdb-22e74ef9b59080f4cf880185ec09c483952eb74f.tar.bz2 |
* sparc-nat.c (sparc_fetch_inferior_registers): Explicitly supply
zero as the value for %g0 in the register cache.
* sparc-tdep.c (sparc32_supply_gregset): Likewise.
* sparc64-tdep.c (sparc64_supply_gregset): Likewise.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/sparc-nat.c | 4 | ||||
-rw-r--r-- | gdb/sparc-tdep.c | 3 | ||||
-rw-r--r-- | gdb/sparc64-tdep.c | 3 |
4 files changed, 14 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ff93d0b..ea55f7c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2011-05-21 Mark Kettenis <kettenis@gnu.org> + + * sparc-nat.c (sparc_fetch_inferior_registers): Explicitly supply + zero as the value for %g0 in the register cache. + * sparc-tdep.c (sparc32_supply_gregset): Likewise. + * sparc64-tdep.c (sparc64_supply_gregset): Likewise. + 2011-05-20 Pedro Alves <pedro@codesourcery.com> * infrun.c (proceed): Set previous_inferior_ptid here. diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c index 60d2989..3d936fc 100644 --- a/gdb/sparc-nat.c +++ b/gdb/sparc-nat.c @@ -159,7 +159,9 @@ sparc_fetch_inferior_registers (struct target_ops *ops, if (regnum == SPARC_G0_REGNUM) { - regcache_raw_supply (regcache, SPARC_G0_REGNUM, NULL); + gdb_byte zero[8] = { 0 }; + + regcache_raw_supply (regcache, SPARC_G0_REGNUM, &zero); return; } diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 1039bd8..84fa3b1e 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -1618,6 +1618,7 @@ sparc32_supply_gregset (const struct sparc_gregset *gregset, int regnum, const void *gregs) { const gdb_byte *regs = gregs; + gdb_byte zero[4] = { 0 }; int i; if (regnum == SPARC32_PSR_REGNUM || regnum == -1) @@ -1637,7 +1638,7 @@ sparc32_supply_gregset (const struct sparc_gregset *gregset, regs + gregset->r_y_offset); if (regnum == SPARC_G0_REGNUM || regnum == -1) - regcache_raw_supply (regcache, SPARC_G0_REGNUM, NULL); + regcache_raw_supply (regcache, SPARC_G0_REGNUM, &zero); if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_O7_REGNUM) || regnum == -1) { diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c index 674d390..6efa220 100644 --- a/gdb/sparc64-tdep.c +++ b/gdb/sparc64-tdep.c @@ -1206,6 +1206,7 @@ sparc64_supply_gregset (const struct sparc_gregset *gregset, enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); int sparc32 = (gdbarch_ptr_bit (gdbarch) == 32); const gdb_byte *regs = gregs; + gdb_byte zero[8] = { 0 }; int i; if (sparc32) @@ -1268,7 +1269,7 @@ sparc64_supply_gregset (const struct sparc_gregset *gregset, } if (regnum == SPARC_G0_REGNUM || regnum == -1) - regcache_raw_supply (regcache, SPARC_G0_REGNUM, NULL); + regcache_raw_supply (regcache, SPARC_G0_REGNUM, &zero); if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_O7_REGNUM) || regnum == -1) { |