Fix tag_ctl register size in the core file.
authorLuis Machado <luis.machado@linaro.org>
Wed, 23 Jun 2021 17:27:14 +0000 (14:27 -0300)
committerLuis Machado <luis.machado@linaro.org>
Mon, 28 Jun 2021 18:19:10 +0000 (15:19 -0300)
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:

2021-06-28  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/ChangeLog
gdb/aarch64-linux-tdep.c
gdb/aarch64-linux-tdep.h

index 2c4719781aa0b5e6abcbc4cf12641e855e6d523f..0d80f3dda0b5f3bcee7a7598d8548c30ce05cb7b 100644 (file)
@@ -1,3 +1,11 @@
+2021-06-28  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.
+
 2021-06-28  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * gdbarch.sh (struct gdbarch_info): Initialize fields, add
index 9602fc4b29a9e11c9b5a7f6f325fc011cd87de13..d541c6a32d013f65128554456a2ffa68f99301a9 100644 (file)
@@ -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 }
        };
 
index 62a6da83494d21558ef05744282bfdc735cb4b6e..0c731ca470bbe0974785d9dbe4638fb4847d1746 100644 (file)
@@ -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;