From e660f4e9054d03549c565a762ba3a8b6e0092d99 Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Thu, 24 Jun 2021 13:06:20 -0300 Subject: [PATCH] Fix FFR register size for core files. 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 * aarch64-linux-tdep.c (aarch64_linux_iterate_over_regset_sections): Fix FFR register size. --- gdb/ChangeLog | 5 +++++ gdb/aarch64-linux-tdep.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0d80f3dda0b..92a102c9fca 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2021-06-28 Luis Machado + + * aarch64-linux-tdep.c + (aarch64_linux_iterate_over_regset_sections): Fix FFR register size. + 2021-06-28 Luis Machado * aarch64-linux-tdep.c diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index d541c6a32d0..167035275a4 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -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 } -- 2.30.2