diff options
Diffstat (limited to 'gdb/mn10300-tdep.c')
-rw-r--r-- | gdb/mn10300-tdep.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c index c7bc58c35fa..85b4a8ea0b2 100644 --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c @@ -31,6 +31,7 @@ #include "symfile.h" #include "regcache.h" #include "arch-utils.h" +#include "gdb_assert.h" #define D0_REGNUM 0 #define D2_REGNUM 2 @@ -131,8 +132,8 @@ mn10300_extract_return_value (struct type *type, char *regbuf, char *valbuf) static CORE_ADDR mn10300_extract_struct_value_address (char *regbuf) { - return extract_address (regbuf + REGISTER_BYTE (4), - REGISTER_RAW_SIZE (4)); + return extract_unsigned_integer (regbuf + REGISTER_BYTE (4), + REGISTER_RAW_SIZE (4)); } static void @@ -1091,6 +1092,14 @@ mn10300_do_registers_info (int regnum, int fpregs) } } +static CORE_ADDR +mn10300_read_fp (void) +{ + /* That's right, we're using the stack pointer as our frame pointer. */ + gdb_assert (SP_REGNUM >= 0); + return read_register (SP_REGNUM); +} + /* Dump out the mn10300 speciic architecture information. */ static void @@ -1149,11 +1158,11 @@ mn10300_gdbarch_init (struct gdbarch_info info, set_gdbarch_deprecated_register_size (gdbarch, 4); set_gdbarch_deprecated_register_bytes (gdbarch, num_regs * gdbarch_deprecated_register_size (gdbarch)); set_gdbarch_deprecated_max_register_raw_size (gdbarch, 4); - set_gdbarch_register_raw_size (gdbarch, mn10300_register_raw_size); - set_gdbarch_register_byte (gdbarch, mn10300_register_byte); + set_gdbarch_deprecated_register_raw_size (gdbarch, mn10300_register_raw_size); + set_gdbarch_deprecated_register_byte (gdbarch, mn10300_register_byte); set_gdbarch_deprecated_max_register_virtual_size (gdbarch, 4); - set_gdbarch_register_virtual_size (gdbarch, mn10300_register_virtual_size); - set_gdbarch_register_virtual_type (gdbarch, mn10300_register_virtual_type); + set_gdbarch_deprecated_register_virtual_size (gdbarch, mn10300_register_virtual_size); + set_gdbarch_deprecated_register_virtual_type (gdbarch, mn10300_register_virtual_type); set_gdbarch_dwarf2_reg_to_regnum (gdbarch, mn10300_dwarf2_reg_to_regnum); set_gdbarch_deprecated_do_registers_info (gdbarch, mn10300_do_registers_info); set_gdbarch_sp_regnum (gdbarch, 8); @@ -1182,9 +1191,8 @@ mn10300_gdbarch_init (struct gdbarch_info info, set_gdbarch_deprecated_pop_frame (gdbarch, mn10300_pop_frame); set_gdbarch_skip_prologue (gdbarch, mn10300_skip_prologue); set_gdbarch_frame_args_skip (gdbarch, 0); - set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); /* That's right, we're using the stack pointer as our frame pointer. */ - set_gdbarch_deprecated_target_read_fp (gdbarch, generic_target_read_sp); + set_gdbarch_deprecated_target_read_fp (gdbarch, mn10300_read_fp); /* Calling functions in the inferior from GDB. */ set_gdbarch_deprecated_call_dummy_words (gdbarch, mn10300_call_dummy_words); @@ -1199,7 +1207,7 @@ mn10300_gdbarch_init (struct gdbarch_info info, tdep->am33_mode = am33_mode; /* Should be using push_dummy_call. */ - set_gdbarch_deprecated_dummy_write_sp (gdbarch, generic_target_write_sp); + set_gdbarch_deprecated_dummy_write_sp (gdbarch, deprecated_write_sp); return gdbarch; } |