AArch64: Add default reggroups
Commit Message
Aarch64 does not define any reggroups. This causes "maintenance print
reggroups" to dump the default set (which is ok).
However, if a new group is added via an xml file, then this now becomes
the only group.
Fixes gdb.xml/tdesc-regs.exp on AArch64.
gdb/ChangeLog:
2019-02-13 Alan Hayward <alan.hayward@arm.com>
* aarch64-tdep.c (aarch64_add_reggroups): New function
(aarch64_gdbarch_init): Call aarch64_add_reggroups.
---
gdb/aarch64-tdep.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
Comments
On Wed, 13 Feb 2019 14:03:08 +0000
Alan Hayward <Alan.Hayward@arm.com> wrote:
> Aarch64 does not define any reggroups. This causes "maintenance print
> reggroups" to dump the default set (which is ok).
>
> However, if a new group is added via an xml file, then this now becomes
> the only group.
>
> Fixes gdb.xml/tdesc-regs.exp on AArch64.
>
> gdb/ChangeLog:
>
> 2019-02-13 Alan Hayward <alan.hayward@arm.com>
>
> * aarch64-tdep.c (aarch64_add_reggroups): New function
> (aarch64_gdbarch_init): Call aarch64_add_reggroups.
The first line of your ChangeLog entry needs a period.
Otherwise, LGTM.
Kevin
@@ -2955,6 +2955,19 @@ aarch64_get_tdesc_vq (const struct target_desc *tdesc)
return sve_vq_from_vl (vl);
}
+/* Add all the expected register sets into GDBARCH. */
+
+static void
+aarch64_add_reggroups (struct gdbarch *gdbarch)
+{
+ reggroup_add (gdbarch, general_reggroup);
+ reggroup_add (gdbarch, float_reggroup);
+ reggroup_add (gdbarch, system_reggroup);
+ reggroup_add (gdbarch, vector_reggroup);
+ reggroup_add (gdbarch, all_reggroup);
+ reggroup_add (gdbarch, save_reggroup);
+ reggroup_add (gdbarch, restore_reggroup);
+}
/* Initialize the current architecture based on INFO. If possible,
re-use an architecture from ARCHES, which is a list of
@@ -3137,6 +3150,9 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Virtual tables. */
set_gdbarch_vbit_in_delta (gdbarch, 1);
+ /* Register architecture. */
+ aarch64_add_reggroups (gdbarch);
+
/* Hook in the ABI-specific overrides, if they have been registered. */
info.target_desc = tdesc;
info.tdesc_data = tdesc_data;