aboutsummaryrefslogtreecommitdiff
path: root/gdb/arc-tdep.c
diff options
context:
space:
mode:
authorShahab Vahedi <shahab@synopsys.com>2020-01-15 00:14:24 +0100
committerShahab Vahedi <shahab@synopsys.com>2021-01-26 11:18:24 +0100
commitd0cc52bdf2e6a586cac70000518c95619970619b (patch)
treef6ca85090384d0a693c20158487d4bca7e91a8dd /gdb/arc-tdep.c
parentac3571d9414d13b1f62b8efd58d6512ad29e7e33 (diff)
downloadgdb-d0cc52bdf2e6a586cac70000518c95619970619b.zip
gdb-d0cc52bdf2e6a586cac70000518c95619970619b.tar.gz
gdb-d0cc52bdf2e6a586cac70000518c95619970619b.tar.bz2
gdb: Add default reggroups for ARC
There is no reggroups set in ARC. If a "maintenance print reggroups" command is issued, the default register set is dumped (which is fine). However, if a new group is added via an XML file, then that will become the _only_ group. This behavior causes gdb.xml/tdesc-regs.exp to fail. Fixes gdb.xml/tdesc-regs.exp on ARC. gdb/ChangeLog: * arc-tdep.c (arc_add_reggroups): New function. (arc_gdbarch_init): Call arc_add_reggroups.
Diffstat (limited to 'gdb/arc-tdep.c')
-rw-r--r--gdb/arc-tdep.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index b19f7c5..8a1da1a 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -27,6 +27,7 @@
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
+#include "reggroups.h"
#include "gdbcmd.h"
#include "objfiles.h"
#include "osabi.h"
@@ -1954,6 +1955,20 @@ static const struct frame_base arc_normal_base = {
arc_frame_base_address
};
+/* Add all the expected register sets into GDBARCH. */
+
+static void
+arc_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);
+}
+
static enum arc_isa
mach_type_to_arc_isa (const unsigned long mach)
{
@@ -2352,6 +2367,9 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* This doesn't include possible long-immediate value. */
set_gdbarch_max_insn_length (gdbarch, 4);
+ /* Add default register groups. */
+ arc_add_reggroups (gdbarch);
+
/* Frame unwinders and sniffers. */
dwarf2_frame_set_init_reg (gdbarch, arc_dwarf2_frame_init_reg);
dwarf2_append_unwinders (gdbarch);