[AArch64] Fix tag_ctl register size in the core file.

Message ID 20210624172459.323251-1-luis.machado@linaro.org
State New
Headers show
Series
  • [AArch64] Fix tag_ctl register size in the core file.
Related show

Commit Message

Rustam Kovhaev via Gdb-patches June 24, 2021, 5:24 p.m.
This register should be 64 bits in size, but the current code only saves
32 bits. This is due to an early assumption that tag_ctl would be 32 bits
in size.

gdb/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

	* aarch64-linux-tdep.c
	(aarch64_linux_iterate_over_regset_sections): Update tag_ctl register
	size.
	* aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_MTE_REGSET): Set to
	8 and update comments.
---
 gdb/aarch64-linux-tdep.c | 2 +-
 gdb/aarch64-linux-tdep.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

-- 
2.25.1

Patch

diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 9602fc4b29a..d541c6a32d0 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -735,7 +735,7 @@  aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
       /* Create this on the fly in order to handle the variable location.  */
       const struct regcache_map_entry mte_regmap[] =
 	{
-	  { 1, tdep->mte_reg_base, 4},
+	  { 1, tdep->mte_reg_base, 8},
 	  { 0 }
 	};
 
diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h
index 62a6da83494..0c731ca470b 100644
--- a/gdb/aarch64-linux-tdep.h
+++ b/gdb/aarch64-linux-tdep.h
@@ -36,8 +36,8 @@ 
 /* The pauth regset consists of 2 X sized registers.  */
 #define AARCH64_LINUX_SIZEOF_PAUTH (2 * X_REGISTER_SIZE)
 
-/* The MTE regset consists of a 32-bit register.  */
-#define AARCH64_LINUX_SIZEOF_MTE_REGSET (4)
+/* The MTE regset consists of a 64-bit register.  */
+#define AARCH64_LINUX_SIZEOF_MTE_REGSET (8)
 
 extern const struct regset aarch64_linux_gregset;
 extern const struct regset aarch64_linux_fpregset;