X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsh-tdep.c;h=48a388b2d8f3042f6839e80b0399f4c479bda644;hb=13c9c48599ebc8ad2f3a1fb9f672740219cd3841;hp=d1a143414df9ce09d795251eff2cf8ba0d48e70a;hpb=34a79281e4bd5d1a7f1d22a5a5be1ac2db56a3fc;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index d1a143414d..48a388b2d8 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for Renesas Super-H, for GDB. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -912,7 +912,7 @@ sh_frame_align (struct gdbarch *ignore, CORE_ADDR sp) not displace any of the other arguments passed in via registers R4 to R7. */ -/* Helper function to justify value in register according to endianess. */ +/* Helper function to justify value in register according to endianness. */ static const gdb_byte * sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, int len) { @@ -942,7 +942,7 @@ sh_stack_allocsize (int nargs, struct value **args) } /* Helper functions for getting the float arguments right. Registers usage - depends on the ABI and the endianess. The comments should enlighten how + depends on the ABI and the endianness. The comments should enlighten how it's intended to work. */ /* This array stores which of the float arg registers are already in use. */ @@ -1045,7 +1045,7 @@ sh_treat_as_flt_p (struct type *type) /* Otherwise non-struct types are not treated as float. */ if (TYPE_CODE (type) != TYPE_CODE_STRUCT) return 0; - /* Otherwise structs with more than one memeber are not treated as float. */ + /* Otherwise structs with more than one member are not treated as float. */ if (TYPE_NFIELDS (type) != 1) return 0; /* Otherwise if the type of that member is float, the whole type is @@ -1062,7 +1062,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, - CORE_ADDR sp, int struct_return, + CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) { enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -1175,7 +1175,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, } } - if (struct_return) + if (return_method == return_method_struct) { if (sh_is_renesas_calling_convention (func_type)) /* If the function uses the Renesas ABI, subtract another 4 bytes from @@ -1204,7 +1204,8 @@ sh_push_dummy_call_nofpu (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, - CORE_ADDR sp, int struct_return, + CORE_ADDR sp, + function_call_return_method return_method, CORE_ADDR struct_addr) { enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -1278,7 +1279,7 @@ sh_push_dummy_call_nofpu (struct gdbarch *gdbarch, } } - if (struct_return) + if (return_method == return_method_struct) { if (sh_is_renesas_calling_convention (func_type)) /* If the function uses the Renesas ABI, subtract another 4 bytes from @@ -1668,7 +1669,7 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, 2, base_regnum, temp_buffer); if (status == REG_VALID) { - /* We must pay attention to the endiannes. */ + /* We must pay attention to the endianness. */ sh_register_convert_to_virtual (gdbarch, reg_nr, register_type (gdbarch, reg_nr), temp_buffer, buffer); @@ -1711,7 +1712,7 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, gdb_byte temp_buffer[4 * 2]; base_regnum = dr_reg_base_num (gdbarch, reg_nr); - /* We must pay attention to the endiannes. */ + /* We must pay attention to the endianness. */ sh_register_convert_to_raw (gdbarch, register_type (gdbarch, reg_nr), reg_nr, buffer, temp_buffer); @@ -1975,28 +1976,6 @@ static const struct frame_unwind sh_frame_unwind = { default_frame_sniffer }; -static CORE_ADDR -sh_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame) -{ - return frame_unwind_register_unsigned (next_frame, - gdbarch_sp_regnum (gdbarch)); -} - -static CORE_ADDR -sh_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) -{ - return frame_unwind_register_unsigned (next_frame, - gdbarch_pc_regnum (gdbarch)); -} - -static struct frame_id -sh_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) -{ - CORE_ADDR sp = get_frame_register_unsigned (this_frame, - gdbarch_sp_regnum (gdbarch)); - return frame_id_build (sp, get_frame_pc (this_frame)); -} - static CORE_ADDR sh_frame_base_address (struct frame_info *this_frame, void **this_cache) { @@ -2232,10 +2211,12 @@ sh_iterate_over_regset_sections (struct gdbarch *gdbarch, struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); if (tdep->core_gregmap != NULL) - cb (".reg", tdep->sizeof_gregset, &sh_corefile_gregset, NULL, cb_data); + cb (".reg", tdep->sizeof_gregset, tdep->sizeof_gregset, + &sh_corefile_gregset, NULL, cb_data); if (tdep->core_fpregmap != NULL) - cb (".reg2", tdep->sizeof_fpregset, &sh_corefile_fpregset, NULL, cb_data); + cb (".reg2", tdep->sizeof_fpregset, tdep->sizeof_fpregset, + &sh_corefile_fpregset, NULL, cb_data); } /* This is the implementation of gdbarch method @@ -2305,9 +2286,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_believe_pcc_promotion (gdbarch, 1); set_gdbarch_frame_align (gdbarch, sh_frame_align); - set_gdbarch_unwind_sp (gdbarch, sh_unwind_sp); - set_gdbarch_unwind_pc (gdbarch, sh_unwind_pc); - set_gdbarch_dummy_id (gdbarch, sh_dummy_id); frame_base_set_default (gdbarch, &sh_frame_base); set_gdbarch_stack_frame_destroyed_p (gdbarch, sh_stack_frame_destroyed_p);