* sparc-nat.c (sparc_fetch_inferior_registers): Explicitly supply
authorMark Kettenis <kettenis@gnu.org>
Sat, 21 May 2011 19:19:45 +0000 (19:19 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 21 May 2011 19:19:45 +0000 (19:19 +0000)
zero as the value for %g0 in the register cache.
* sparc-tdep.c (sparc32_supply_gregset): Likewise.
* sparc64-tdep.c (sparc64_supply_gregset): Likewise.

gdb/ChangeLog
gdb/sparc-nat.c
gdb/sparc-tdep.c
gdb/sparc64-tdep.c

index ff93d0b20145f89d7ec3c3f40dc2b15594136cf9..ea55f7c935c45c8fae80fcd2985ad80309db1f55 100644 (file)
@@ -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.
index 60d2989e4e21fda022ef105e1a198c66f531ce1f..3d936fcc8fc9fec7e14aea8b0cfd65e726ea9295 100644 (file)
@@ -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;
     }
 
index 1039bd8e76847003ffaaaef5b7210150de8aa155..84fa3b1e7427428c6debe3e02f9ce9bc85e8e4a4 100644 (file)
@@ -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)
     {
index 674d390bdb3f12ff5335b0cc246d553c35680cdd..6efa2202a50fd836c50149d0bdf90a29f2be8432 100644 (file)
@@ -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)
     {