]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/tdep] Use raw_supply_zeroed for IA-64 gr0 and fr0 regs
authorTom de Vries <tdevries@suse.de>
Fri, 8 Nov 2024 09:00:13 +0000 (10:00 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 8 Nov 2024 09:00:13 +0000 (10:00 +0100)
Use reg_buffer::raw_supply_zeroed for IA-64 registers gr0 and fr0.

Tested by rebuilding on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/ia64-linux-nat.c
gdb/ia64-linux-tdep.c

index 7a8e742daea3f5083a5843f7b15e9854fdb608db..fd786326216e83b3246dcf70ea5274952b919762 100644 (file)
@@ -490,7 +490,6 @@ supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
 {
   int regi;
   const char *from;
-  const gdb_byte f_zero[16] = { 0 };
   const gdb_byte f_one[16] =
     { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0xff, 0, 0, 0, 0, 0, 0 };
 
@@ -499,7 +498,7 @@ supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
      for fr0/fr1 and always supply their expected values.  */
 
   /* fr0 is always read as zero.  */
-  regcache->raw_supply (IA64_FR0_REGNUM, f_zero);
+  regcache->raw_supply_zeroed (IA64_FR0_REGNUM);
   /* fr1 is always read as one (1.0).  */
   regcache->raw_supply (IA64_FR1_REGNUM, f_one);
 
@@ -740,20 +739,14 @@ ia64_linux_fetch_register (struct regcache *regcache, int regnum)
   /* r0 cannot be fetched but is always zero.  */
   if (regnum == IA64_GR0_REGNUM)
     {
-      const gdb_byte zero[8] = { 0 };
-
-      gdb_assert (sizeof (zero) == register_size (gdbarch, regnum));
-      regcache->raw_supply (regnum, zero);
+      regcache->raw_supply_zeroed (regnum);
       return;
     }
 
   /* fr0 cannot be fetched but is always zero.  */
   if (regnum == IA64_FR0_REGNUM)
     {
-      const gdb_byte f_zero[16] = { 0 };
-
-      gdb_assert (sizeof (f_zero) == register_size (gdbarch, regnum));
-      regcache->raw_supply (regnum, f_zero);
+      regcache->raw_supply_zeroed (regnum);
       return;
     }
 
index 12083e94ca37737385d3bcaac2a17097bda76c84..da06f91a0317889b7c5bb6d4fd6e5853a8d5894d 100644 (file)
@@ -174,7 +174,6 @@ ia64_linux_supply_fpregset (const struct regset *regset,
                            struct regcache *regcache,
                            int regnum, const void *regs, size_t len)
 {
-  const gdb_byte f_zero[16] = { 0 };
   const gdb_byte f_one[16] =
     { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0xff, 0, 0, 0, 0, 0, 0 };
 
@@ -184,7 +183,7 @@ ia64_linux_supply_fpregset (const struct regset *regset,
      did the same.  So ignore whatever might be recorded in fpregset_t
      for fr0/fr1 and always supply their expected values.  */
   if (regnum == -1 || regnum == IA64_FR0_REGNUM)
-    regcache->raw_supply (IA64_FR0_REGNUM, f_zero);
+    regcache->raw_supply_zeroed (IA64_FR0_REGNUM);
   if (regnum == -1 || regnum == IA64_FR1_REGNUM)
     regcache->raw_supply (IA64_FR1_REGNUM, f_one);
 }