AArch64: Add default reggroups
authorAlan Hayward <alan.hayward@arm.com>
Wed, 20 Feb 2019 11:56:23 +0000 (11:56 +0000)
committerAlan Hayward <alan.hayward@arm.com>
Wed, 20 Feb 2019 11:56:23 +0000 (11:56 +0000)
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:

* aarch64-tdep.c (aarch64_add_reggroups): New function
(aarch64_gdbarch_init): Call aarch64_add_reggroups.

gdb/ChangeLog
gdb/aarch64-tdep.c

index eb855819e7c86aa1fb77ed3d0134d67960db6177..721e636fdca4e53eaef1c1a94110544e4b8ea50a 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-20  Alan Hayward  <alan.hayward@arm.com>
+
+       * aarch64-tdep.c (aarch64_add_reggroups): New function.
+       (aarch64_gdbarch_init): Call aarch64_add_reggroups.
+
 2019-02-19  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * top.h (source_file_name): Change to std::string.
index bc928e14e9fd39b50b667de0c84065ffa84d2064..f85539313fe8bd2788013e738efe3ae7b84da6f4 100644 (file)
@@ -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;