Fix FFR register size for core files.
authorLuis Machado <luis.machado@linaro.org>
Thu, 24 Jun 2021 16:06:20 +0000 (13:06 -0300)
committerLuis Machado <luis.machado@linaro.org>
Mon, 28 Jun 2021 18:20:18 +0000 (15:20 -0300)
The FFR register has a size of VL bits, not 32 bits.

This causes issues when writing core files with the gcore command and when
reading them. The FFR register sometimes shows up with garbage data.

gdb/ChangeLog:

2021-06-28  Luis Machado  <luis.machado@linaro.org>

* aarch64-linux-tdep.c
(aarch64_linux_iterate_over_regset_sections): Fix FFR register size.

gdb/ChangeLog
gdb/aarch64-linux-tdep.c

index 0d80f3dda0b5f3bcee7a7598d8548c30ce05cb7b..92a102c9fca5e48e71ada0d9c697c7c006218045 100644 (file)
@@ -1,3 +1,8 @@
+2021-06-28  Luis Machado  <luis.machado@linaro.org>
+
+       * aarch64-linux-tdep.c
+       (aarch64_linux_iterate_over_regset_sections): Fix FFR register size.
+
 2021-06-28  Luis Machado  <luis.machado@linaro.org>
 
        * aarch64-linux-tdep.c
index d541c6a32d013f65128554456a2ffa68f99301a9..167035275a4662f214cb3a6136d8974bcd3d2bc1 100644 (file)
@@ -687,7 +687,7 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
        {
          { 32, AARCH64_SVE_Z0_REGNUM, (int) (tdep->vq * 16) },
          { 16, AARCH64_SVE_P0_REGNUM, (int) (tdep->vq * 16 / 8) },
-         { 1, AARCH64_SVE_FFR_REGNUM, 4 },
+         { 1, AARCH64_SVE_FFR_REGNUM, (int) (tdep->vq * 16 / 8) },
          { 1, AARCH64_FPSR_REGNUM, 4 },
          { 1, AARCH64_FPCR_REGNUM, 4 },
          { 0 }