diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/h8300-tdep.c | 18 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bb977b5..6f0f903 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-02-12 Pedro Alves <palves@redhat.com> + + * h8300-tdep.c (h8300_register_sim_regno): New function. + (h8300_gdbarch_init): Install h8300_register_sim_regno as + gdbarch_register_sim_regno hook. + 2014-02-12 Sanimir Agovic <sanimir.agovic@intel.com> * nios2-tdep.c (nios2_stub_frame_base): Remove global. diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index ffffbc9..4193287 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -939,6 +939,22 @@ h8300h_return_value (struct gdbarch *gdbarch, struct value *function, static struct cmd_list_element *setmachinelist; +/* Implementation of 'register_sim_regno' gdbarch method. */ + +static int +h8300_register_sim_regno (struct gdbarch *gdbarch, int regnum) +{ + /* Only makes sense to supply raw registers. */ + gdb_assert (regnum >= 0 && regnum < gdbarch_num_regs (gdbarch)); + + /* We hide the raw ccr from the user by making it nameless. Because + the default register_sim_regno hook returns + LEGACY_SIM_REGNO_IGNORE for unnamed registers, we need to + override it. The sim register numbering is compatible with + gdb's. */ + return regnum; +} + static const char * h8300_register_name (struct gdbarch *gdbarch, int regno) { @@ -1230,6 +1246,8 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) gdbarch = gdbarch_alloc (&info, 0); + set_gdbarch_register_sim_regno (gdbarch, h8300_register_sim_regno); + switch (info.bfd_arch_info->mach) { case bfd_mach_h8300: |