From: Andrew Cagney Date: Fri, 13 Jun 2003 23:07:06 +0000 (+0000) Subject: 2003-06-13 Andrew Cagney X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8de82830d3ac0a9ecf9575722b517e1070a092d;p=binutils-gdb.git 2003-06-13 Andrew Cagney * gdbarch.sh: Document what PUSH_DUMMY_CALL replaces. * gdbarch.h, gdbarch.c: Re-generate. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ee5c6be6bce..32f832cbdd7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-06-13 Andrew Cagney + + * gdbarch.sh: Document what PUSH_DUMMY_CALL replaces. + * gdbarch.h, gdbarch.c: Re-generate. + 2003-06-13 Andrew Cagney * gdbarch.sh: Document what UNWIND_DUMMY_ID replaces. Clarify diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 482103aa3d5..47a5355faf7 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -148,7 +148,6 @@ struct gdbarch gdbarch_read_pc_ftype *read_pc; gdbarch_write_pc_ftype *write_pc; gdbarch_read_sp_ftype *read_sp; - gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp; gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer; gdbarch_pseudo_register_read_ftype *pseudo_register_read; gdbarch_pseudo_register_write_ftype *pseudo_register_write; @@ -165,7 +164,6 @@ struct gdbarch gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum; gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum; gdbarch_register_name_ftype *register_name; - int deprecated_register_size; gdbarch_register_type_ftype *register_type; gdbarch_deprecated_register_virtual_type_ftype *deprecated_register_virtual_type; int deprecated_register_bytes; @@ -178,27 +176,34 @@ struct gdbarch gdbarch_save_dummy_frame_tos_ftype *save_dummy_frame_tos; int deprecated_fp_regnum; gdbarch_deprecated_target_read_fp_ftype *deprecated_target_read_fp; - gdbarch_deprecated_do_registers_info_ftype *deprecated_do_registers_info; - gdbarch_print_registers_info_ftype *print_registers_info; - gdbarch_print_float_info_ftype *print_float_info; - gdbarch_print_vector_info_ftype *print_vector_info; - gdbarch_register_sim_regno_ftype *register_sim_regno; - gdbarch_register_bytes_ok_ftype *register_bytes_ok; - gdbarch_cannot_fetch_register_ftype *cannot_fetch_register; - gdbarch_cannot_store_register_ftype *cannot_store_register; - gdbarch_get_longjmp_target_ftype *get_longjmp_target; + gdbarch_push_dummy_call_ftype *push_dummy_call; + gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments; int deprecated_use_generic_dummy_frames; + gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address; + gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp; + int deprecated_register_size; int call_dummy_location; gdbarch_call_dummy_address_ftype *call_dummy_address; CORE_ADDR deprecated_call_dummy_start_offset; CORE_ADDR deprecated_call_dummy_breakpoint_offset; int deprecated_call_dummy_length; - gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy; LONGEST * deprecated_call_dummy_words; int deprecated_sizeof_call_dummy_words; int deprecated_call_dummy_stack_adjust; gdbarch_deprecated_fix_call_dummy_ftype *deprecated_fix_call_dummy; gdbarch_push_dummy_code_ftype *push_dummy_code; + gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame; + int deprecated_extra_stack_alignment_needed; + gdbarch_deprecated_do_registers_info_ftype *deprecated_do_registers_info; + gdbarch_print_registers_info_ftype *print_registers_info; + gdbarch_print_float_info_ftype *print_float_info; + gdbarch_print_vector_info_ftype *print_vector_info; + gdbarch_register_sim_regno_ftype *register_sim_regno; + gdbarch_register_bytes_ok_ftype *register_bytes_ok; + gdbarch_cannot_fetch_register_ftype *cannot_fetch_register; + gdbarch_cannot_store_register_ftype *cannot_store_register; + gdbarch_get_longjmp_target_ftype *get_longjmp_target; + gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy; gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first; gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc; int believe_pcc_promotion; @@ -214,10 +219,6 @@ struct gdbarch gdbarch_address_to_pointer_ftype *address_to_pointer; gdbarch_integer_to_address_ftype *integer_to_address; gdbarch_return_value_on_stack_ftype *return_value_on_stack; - gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments; - gdbarch_push_dummy_call_ftype *push_dummy_call; - gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame; - gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address; gdbarch_deprecated_pop_frame_ftype *deprecated_pop_frame; gdbarch_deprecated_store_struct_return_ftype *deprecated_store_struct_return; gdbarch_extract_return_value_ftype *extract_return_value; @@ -252,7 +253,6 @@ struct gdbarch gdbarch_frame_num_args_ftype *frame_num_args; gdbarch_stack_align_ftype *stack_align; gdbarch_frame_align_ftype *frame_align; - int deprecated_extra_stack_alignment_needed; gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr; int parm_boundary; const struct floatformat * float_format; @@ -316,7 +316,6 @@ struct gdbarch startup_gdbarch = 0, /* read_pc */ 0, /* write_pc */ 0, /* read_sp */ - 0, /* deprecated_dummy_write_sp */ 0, /* virtual_frame_pointer */ 0, /* pseudo_register_read */ 0, /* pseudo_register_write */ @@ -333,7 +332,6 @@ struct gdbarch startup_gdbarch = 0, /* sdb_reg_to_regnum */ 0, /* dwarf2_reg_to_regnum */ 0, /* register_name */ - 0, /* deprecated_register_size */ 0, /* register_type */ 0, /* deprecated_register_virtual_type */ 0, /* deprecated_register_bytes */ @@ -346,27 +344,34 @@ struct gdbarch startup_gdbarch = 0, /* save_dummy_frame_tos */ -1, /* deprecated_fp_regnum */ 0, /* deprecated_target_read_fp */ - 0, /* deprecated_do_registers_info */ - default_print_registers_info, /* print_registers_info */ - 0, /* print_float_info */ - 0, /* print_vector_info */ - 0, /* register_sim_regno */ - 0, /* register_bytes_ok */ - 0, /* cannot_fetch_register */ - 0, /* cannot_store_register */ - 0, /* get_longjmp_target */ + 0, /* push_dummy_call */ + 0, /* deprecated_push_arguments */ 0, /* deprecated_use_generic_dummy_frames */ + 0, /* deprecated_push_return_address */ + 0, /* deprecated_dummy_write_sp */ + 0, /* deprecated_register_size */ 0, /* call_dummy_location */ 0, /* call_dummy_address */ 0, /* deprecated_call_dummy_start_offset */ 0, /* deprecated_call_dummy_breakpoint_offset */ 0, /* deprecated_call_dummy_length */ - generic_pc_in_call_dummy, /* deprecated_pc_in_call_dummy */ 0, /* deprecated_call_dummy_words */ 0, /* deprecated_sizeof_call_dummy_words */ 0, /* deprecated_call_dummy_stack_adjust */ 0, /* deprecated_fix_call_dummy */ 0, /* push_dummy_code */ + 0, /* deprecated_push_dummy_frame */ + 0, /* deprecated_extra_stack_alignment_needed */ + 0, /* deprecated_do_registers_info */ + default_print_registers_info, /* print_registers_info */ + 0, /* print_float_info */ + 0, /* print_vector_info */ + 0, /* register_sim_regno */ + 0, /* register_bytes_ok */ + 0, /* cannot_fetch_register */ + 0, /* cannot_store_register */ + 0, /* get_longjmp_target */ + generic_pc_in_call_dummy, /* deprecated_pc_in_call_dummy */ 0, /* deprecated_init_frame_pc_first */ 0, /* deprecated_init_frame_pc */ 0, /* believe_pcc_promotion */ @@ -382,10 +387,6 @@ struct gdbarch startup_gdbarch = 0, /* address_to_pointer */ 0, /* integer_to_address */ 0, /* return_value_on_stack */ - 0, /* deprecated_push_arguments */ - 0, /* push_dummy_call */ - 0, /* deprecated_push_dummy_frame */ - 0, /* deprecated_push_return_address */ 0, /* deprecated_pop_frame */ 0, /* deprecated_store_struct_return */ 0, /* extract_return_value */ @@ -420,7 +421,6 @@ struct gdbarch startup_gdbarch = 0, /* frame_num_args */ 0, /* stack_align */ 0, /* frame_align */ - 0, /* deprecated_extra_stack_alignment_needed */ 0, /* reg_struct_has_addr */ 0, /* parm_boundary */ 0, /* float_format */ @@ -521,16 +521,16 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->deprecated_register_raw_size = generic_register_size; current_gdbarch->deprecated_register_virtual_size = generic_register_size; current_gdbarch->deprecated_fp_regnum = -1; - current_gdbarch->print_registers_info = default_print_registers_info; - current_gdbarch->register_sim_regno = legacy_register_sim_regno; - current_gdbarch->cannot_fetch_register = cannot_register_not; - current_gdbarch->cannot_store_register = cannot_register_not; current_gdbarch->deprecated_use_generic_dummy_frames = 1; current_gdbarch->call_dummy_location = AT_ENTRY_POINT; current_gdbarch->call_dummy_address = entry_point_address; - current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy; current_gdbarch->deprecated_call_dummy_words = legacy_call_dummy_words; current_gdbarch->deprecated_sizeof_call_dummy_words = legacy_sizeof_call_dummy_words; + current_gdbarch->print_registers_info = default_print_registers_info; + current_gdbarch->register_sim_regno = legacy_register_sim_regno; + current_gdbarch->cannot_fetch_register = cannot_register_not; + current_gdbarch->cannot_store_register = cannot_register_not; + current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy; current_gdbarch->deprecated_register_convertible = deprecated_register_convertible_not; current_gdbarch->convert_register_p = legacy_convert_register_p; current_gdbarch->register_to_value = legacy_register_to_value; @@ -623,7 +623,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of read_pc, has predicate */ /* Skip verify of write_pc, invalid_p == 0 */ /* Skip verify of read_sp, has predicate */ - /* Skip verify of deprecated_dummy_write_sp, has predicate */ /* Skip verify of virtual_frame_pointer, invalid_p == 0 */ /* Skip verify of pseudo_register_read, has predicate */ /* Skip verify of pseudo_register_write, has predicate */ @@ -653,6 +652,20 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of save_dummy_frame_tos, has predicate */ /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */ /* Skip verify of deprecated_target_read_fp, has predicate */ + /* Skip verify of push_dummy_call, has predicate */ + /* Skip verify of deprecated_push_arguments, has predicate */ + /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ + /* Skip verify of deprecated_push_return_address, has predicate */ + /* Skip verify of deprecated_dummy_write_sp, has predicate */ + /* Skip verify of call_dummy_location, invalid_p == 0 */ + /* Skip verify of call_dummy_address, invalid_p == 0 */ + /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */ + /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */ + /* Skip verify of deprecated_call_dummy_stack_adjust, has predicate */ + /* Skip verify of deprecated_fix_call_dummy, has predicate */ + /* Skip verify of push_dummy_code, has predicate */ + /* Skip verify of deprecated_push_dummy_frame, has predicate */ + /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */ /* Skip verify of deprecated_do_registers_info, has predicate */ /* Skip verify of print_registers_info, invalid_p == 0 */ /* Skip verify of print_float_info, has predicate */ @@ -662,15 +675,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of cannot_fetch_register, invalid_p == 0 */ /* Skip verify of cannot_store_register, invalid_p == 0 */ /* Skip verify of get_longjmp_target, has predicate */ - /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ - /* Skip verify of call_dummy_location, invalid_p == 0 */ - /* Skip verify of call_dummy_address, invalid_p == 0 */ /* Skip verify of deprecated_pc_in_call_dummy, has predicate */ - /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */ - /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */ - /* Skip verify of deprecated_call_dummy_stack_adjust, has predicate */ - /* Skip verify of deprecated_fix_call_dummy, has predicate */ - /* Skip verify of push_dummy_code, has predicate */ /* Skip verify of deprecated_init_frame_pc_first, has predicate */ /* Skip verify of deprecated_init_frame_pc, has predicate */ /* Skip verify of deprecated_get_saved_register, has predicate */ @@ -684,10 +689,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of address_to_pointer, invalid_p == 0 */ /* Skip verify of integer_to_address, has predicate */ /* Skip verify of return_value_on_stack, invalid_p == 0 */ - /* Skip verify of deprecated_push_arguments, has predicate */ - /* Skip verify of push_dummy_call, has predicate */ - /* Skip verify of deprecated_push_dummy_frame, has predicate */ - /* Skip verify of deprecated_push_return_address, has predicate */ /* Skip verify of deprecated_pop_frame, has predicate */ /* Skip verify of deprecated_store_struct_return, has predicate */ /* Skip verify of extract_return_value, invalid_p == 0 */ @@ -732,7 +733,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of frame_num_args, has predicate */ /* Skip verify of stack_align, has predicate */ /* Skip verify of frame_align, has predicate */ - /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */ /* Skip verify of reg_struct_has_addr, has predicate */ if (gdbarch->float_format == 0) gdbarch->float_format = default_float_format (gdbarch); @@ -2981,32 +2981,6 @@ set_gdbarch_read_sp (struct gdbarch *gdbarch, gdbarch->read_sp = read_sp; } -int -gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_dummy_write_sp != 0; -} - -void -gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_dummy_write_sp == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_dummy_write_sp invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_dummy_write_sp called\n"); - gdbarch->deprecated_dummy_write_sp (val); -} - -void -set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, - gdbarch_deprecated_dummy_write_sp_ftype deprecated_dummy_write_sp) -{ - gdbarch->deprecated_dummy_write_sp = deprecated_dummy_write_sp; -} - void gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset) { @@ -3313,22 +3287,6 @@ set_gdbarch_register_name (struct gdbarch *gdbarch, gdbarch->register_name = register_name; } -int -gdbarch_deprecated_register_size (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_size called\n"); - return gdbarch->deprecated_register_size; -} - -void -set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch, - int deprecated_register_size) -{ - gdbarch->deprecated_register_size = deprecated_register_size; -} - int gdbarch_register_type_p (struct gdbarch *gdbarch) { @@ -3604,446 +3562,609 @@ set_gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch, } int -gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch) +gdbarch_push_dummy_call_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_do_registers_info != 0; + return gdbarch->push_dummy_call != 0; } -void -gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs) +CORE_ADDR +gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) { gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_do_registers_info == 0) + if (gdbarch->push_dummy_call == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_do_registers_info invalid"); + "gdbarch: gdbarch_push_dummy_call invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_do_registers_info called\n"); - gdbarch->deprecated_do_registers_info (reg_nr, fpregs); + fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n"); + return gdbarch->push_dummy_call (gdbarch, func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr); } void -set_gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, - gdbarch_deprecated_do_registers_info_ftype deprecated_do_registers_info) +set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, + gdbarch_push_dummy_call_ftype push_dummy_call) { - gdbarch->deprecated_do_registers_info = deprecated_do_registers_info; + gdbarch->push_dummy_call = push_dummy_call; } -void -gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all) +int +gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->print_registers_info == 0) + return gdbarch->deprecated_push_arguments != 0; +} + +CORE_ADDR +gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_push_arguments == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_print_registers_info invalid"); + "gdbarch: gdbarch_deprecated_push_arguments invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n"); - gdbarch->print_registers_info (gdbarch, file, frame, regnum, all); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_arguments called\n"); + return gdbarch->deprecated_push_arguments (nargs, args, sp, struct_return, struct_addr); } void -set_gdbarch_print_registers_info (struct gdbarch *gdbarch, - gdbarch_print_registers_info_ftype print_registers_info) +set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, + gdbarch_deprecated_push_arguments_ftype deprecated_push_arguments) { - gdbarch->print_registers_info = print_registers_info; + gdbarch->deprecated_push_arguments = deprecated_push_arguments; } int -gdbarch_print_float_info_p (struct gdbarch *gdbarch) +gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->print_float_info != 0; + /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n"); + return gdbarch->deprecated_use_generic_dummy_frames; } void -gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) +set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, + int deprecated_use_generic_dummy_frames) +{ + gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames; +} + +int +gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->print_float_info == 0) + return gdbarch->deprecated_push_return_address != 0; +} + +CORE_ADDR +gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_push_return_address == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_print_float_info invalid"); + "gdbarch: gdbarch_deprecated_push_return_address invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n"); - gdbarch->print_float_info (gdbarch, file, frame, args); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_return_address called\n"); + return gdbarch->deprecated_push_return_address (pc, sp); } void -set_gdbarch_print_float_info (struct gdbarch *gdbarch, - gdbarch_print_float_info_ftype print_float_info) +set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, + gdbarch_deprecated_push_return_address_ftype deprecated_push_return_address) { - gdbarch->print_float_info = print_float_info; + gdbarch->deprecated_push_return_address = deprecated_push_return_address; } int -gdbarch_print_vector_info_p (struct gdbarch *gdbarch) +gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->print_vector_info != 0; + return gdbarch->deprecated_dummy_write_sp != 0; } void -gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) +gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val) { gdb_assert (gdbarch != NULL); - if (gdbarch->print_vector_info == 0) + if (gdbarch->deprecated_dummy_write_sp == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_print_vector_info invalid"); + "gdbarch: gdbarch_deprecated_dummy_write_sp invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n"); - gdbarch->print_vector_info (gdbarch, file, frame, args); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_dummy_write_sp called\n"); + gdbarch->deprecated_dummy_write_sp (val); } void -set_gdbarch_print_vector_info (struct gdbarch *gdbarch, - gdbarch_print_vector_info_ftype print_vector_info) +set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, + gdbarch_deprecated_dummy_write_sp_ftype deprecated_dummy_write_sp) { - gdbarch->print_vector_info = print_vector_info; + gdbarch->deprecated_dummy_write_sp = deprecated_dummy_write_sp; } int -gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr) +gdbarch_deprecated_register_size (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->register_sim_regno == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_register_sim_regno invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n"); - return gdbarch->register_sim_regno (reg_nr); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_size called\n"); + return gdbarch->deprecated_register_size; } void -set_gdbarch_register_sim_regno (struct gdbarch *gdbarch, - gdbarch_register_sim_regno_ftype register_sim_regno) +set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch, + int deprecated_register_size) { - gdbarch->register_sim_regno = register_sim_regno; + gdbarch->deprecated_register_size = deprecated_register_size; } int -gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch) +gdbarch_call_dummy_location (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->register_bytes_ok != 0; + /* Skip verify of call_dummy_location, invalid_p == 0 */ + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n"); + return gdbarch->call_dummy_location; } -int -gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes) +void +set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, + int call_dummy_location) +{ + gdbarch->call_dummy_location = call_dummy_location; +} + +CORE_ADDR +gdbarch_call_dummy_address (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->register_bytes_ok == 0) + if (gdbarch->call_dummy_address == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_register_bytes_ok invalid"); + "gdbarch: gdbarch_call_dummy_address invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n"); - return gdbarch->register_bytes_ok (nr_bytes); + fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_address called\n"); + return gdbarch->call_dummy_address (); } void -set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch, - gdbarch_register_bytes_ok_ftype register_bytes_ok) +set_gdbarch_call_dummy_address (struct gdbarch *gdbarch, + gdbarch_call_dummy_address_ftype call_dummy_address) { - gdbarch->register_bytes_ok = register_bytes_ok; + gdbarch->call_dummy_address = call_dummy_address; +} + +CORE_ADDR +gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_start_offset called\n"); + return gdbarch->deprecated_call_dummy_start_offset; +} + +void +set_gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch, + CORE_ADDR deprecated_call_dummy_start_offset) +{ + gdbarch->deprecated_call_dummy_start_offset = deprecated_call_dummy_start_offset; +} + +CORE_ADDR +gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_breakpoint_offset called\n"); + return gdbarch->deprecated_call_dummy_breakpoint_offset; +} + +void +set_gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch, + CORE_ADDR deprecated_call_dummy_breakpoint_offset) +{ + gdbarch->deprecated_call_dummy_breakpoint_offset = deprecated_call_dummy_breakpoint_offset; } int -gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum) +gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->cannot_fetch_register == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_cannot_fetch_register invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n"); - return gdbarch->cannot_fetch_register (regnum); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_length called\n"); + return gdbarch->deprecated_call_dummy_length; } void -set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, - gdbarch_cannot_fetch_register_ftype cannot_fetch_register) +set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch, + int deprecated_call_dummy_length) { - gdbarch->cannot_fetch_register = cannot_fetch_register; + gdbarch->deprecated_call_dummy_length = deprecated_call_dummy_length; +} + +LONGEST * +gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */ + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_words called\n"); + return gdbarch->deprecated_call_dummy_words; +} + +void +set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, + LONGEST * deprecated_call_dummy_words) +{ + gdbarch->deprecated_call_dummy_words = deprecated_call_dummy_words; } int -gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum) +gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->cannot_store_register == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_cannot_store_register invalid"); + /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */ if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n"); - return gdbarch->cannot_store_register (regnum); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_sizeof_call_dummy_words called\n"); + return gdbarch->deprecated_sizeof_call_dummy_words; } void -set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, - gdbarch_cannot_store_register_ftype cannot_store_register) +set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch, + int deprecated_sizeof_call_dummy_words) { - gdbarch->cannot_store_register = cannot_store_register; + gdbarch->deprecated_sizeof_call_dummy_words = deprecated_sizeof_call_dummy_words; } int -gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch) +gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->get_longjmp_target != 0; + return gdbarch->deprecated_call_dummy_stack_adjust != 0; } int -gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc) +gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->get_longjmp_target == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_get_longjmp_target invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n"); - return gdbarch->get_longjmp_target (pc); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_stack_adjust called\n"); + return gdbarch->deprecated_call_dummy_stack_adjust; } void -set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, - gdbarch_get_longjmp_target_ftype get_longjmp_target) +set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch, + int deprecated_call_dummy_stack_adjust) { - gdbarch->get_longjmp_target = get_longjmp_target; + gdbarch->deprecated_call_dummy_stack_adjust = deprecated_call_dummy_stack_adjust; } int -gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch) +gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */ + return gdbarch->deprecated_fix_call_dummy != 0; +} + +void +gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_fix_call_dummy == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_deprecated_fix_call_dummy invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n"); - return gdbarch->deprecated_use_generic_dummy_frames; + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fix_call_dummy called\n"); + gdbarch->deprecated_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p); } void -set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, - int deprecated_use_generic_dummy_frames) +set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, + gdbarch_deprecated_fix_call_dummy_ftype deprecated_fix_call_dummy) { - gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames; + gdbarch->deprecated_fix_call_dummy = deprecated_fix_call_dummy; } int -gdbarch_call_dummy_location (struct gdbarch *gdbarch) +gdbarch_push_dummy_code_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Skip verify of call_dummy_location, invalid_p == 0 */ + return gdbarch->push_dummy_code != 0; +} + +CORE_ADDR +gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->push_dummy_code == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_push_dummy_code invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n"); - return gdbarch->call_dummy_location; + fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n"); + return gdbarch->push_dummy_code (gdbarch, sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr); } void -set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, - int call_dummy_location) +set_gdbarch_push_dummy_code (struct gdbarch *gdbarch, + gdbarch_push_dummy_code_ftype push_dummy_code) { - gdbarch->call_dummy_location = call_dummy_location; + gdbarch->push_dummy_code = push_dummy_code; } -CORE_ADDR -gdbarch_call_dummy_address (struct gdbarch *gdbarch) +int +gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - if (gdbarch->call_dummy_address == 0) + return gdbarch->deprecated_push_dummy_frame != 0; +} + +void +gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_push_dummy_frame == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_call_dummy_address invalid"); + "gdbarch: gdbarch_deprecated_push_dummy_frame invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_address called\n"); - return gdbarch->call_dummy_address (); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_dummy_frame called\n"); + gdbarch->deprecated_push_dummy_frame (); } void -set_gdbarch_call_dummy_address (struct gdbarch *gdbarch, - gdbarch_call_dummy_address_ftype call_dummy_address) +set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, + gdbarch_deprecated_push_dummy_frame_ftype deprecated_push_dummy_frame) { - gdbarch->call_dummy_address = call_dummy_address; + gdbarch->deprecated_push_dummy_frame = deprecated_push_dummy_frame; } -CORE_ADDR -gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch) +int +gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); + /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */ if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_start_offset called\n"); - return gdbarch->deprecated_call_dummy_start_offset; + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extra_stack_alignment_needed called\n"); + return gdbarch->deprecated_extra_stack_alignment_needed; } void -set_gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch, - CORE_ADDR deprecated_call_dummy_start_offset) +set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch, + int deprecated_extra_stack_alignment_needed) { - gdbarch->deprecated_call_dummy_start_offset = deprecated_call_dummy_start_offset; + gdbarch->deprecated_extra_stack_alignment_needed = deprecated_extra_stack_alignment_needed; } -CORE_ADDR -gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch) +int +gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); + return gdbarch->deprecated_do_registers_info != 0; +} + +void +gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_do_registers_info == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_deprecated_do_registers_info invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_breakpoint_offset called\n"); - return gdbarch->deprecated_call_dummy_breakpoint_offset; + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_do_registers_info called\n"); + gdbarch->deprecated_do_registers_info (reg_nr, fpregs); } void -set_gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch, - CORE_ADDR deprecated_call_dummy_breakpoint_offset) +set_gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, + gdbarch_deprecated_do_registers_info_ftype deprecated_do_registers_info) { - gdbarch->deprecated_call_dummy_breakpoint_offset = deprecated_call_dummy_breakpoint_offset; + gdbarch->deprecated_do_registers_info = deprecated_do_registers_info; +} + +void +gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->print_registers_info == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_print_registers_info invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n"); + gdbarch->print_registers_info (gdbarch, file, frame, regnum, all); +} + +void +set_gdbarch_print_registers_info (struct gdbarch *gdbarch, + gdbarch_print_registers_info_ftype print_registers_info) +{ + gdbarch->print_registers_info = print_registers_info; } int -gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch) +gdbarch_print_float_info_p (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + return gdbarch->print_float_info != 0; +} + +void +gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) { gdb_assert (gdbarch != NULL); + if (gdbarch->print_float_info == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_print_float_info invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_length called\n"); - return gdbarch->deprecated_call_dummy_length; + fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n"); + gdbarch->print_float_info (gdbarch, file, frame, args); } void -set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch, - int deprecated_call_dummy_length) +set_gdbarch_print_float_info (struct gdbarch *gdbarch, + gdbarch_print_float_info_ftype print_float_info) { - gdbarch->deprecated_call_dummy_length = deprecated_call_dummy_length; + gdbarch->print_float_info = print_float_info; +} + +int +gdbarch_print_vector_info_p (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + return gdbarch->print_vector_info != 0; +} + +void +gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->print_vector_info == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_print_vector_info invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n"); + gdbarch->print_vector_info (gdbarch, file, frame, args); } -int -gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch) +void +set_gdbarch_print_vector_info (struct gdbarch *gdbarch, + gdbarch_print_vector_info_ftype print_vector_info) { - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy; + gdbarch->print_vector_info = print_vector_info; } int -gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address) +gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr) { gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_pc_in_call_dummy == 0) + if (gdbarch->register_sim_regno == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_pc_in_call_dummy invalid"); - /* Ignore predicate (gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy). */ + "gdbarch: gdbarch_register_sim_regno invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n"); - return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address); + fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n"); + return gdbarch->register_sim_regno (reg_nr); } void -set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, - gdbarch_deprecated_pc_in_call_dummy_ftype deprecated_pc_in_call_dummy) +set_gdbarch_register_sim_regno (struct gdbarch *gdbarch, + gdbarch_register_sim_regno_ftype register_sim_regno) { - gdbarch->deprecated_pc_in_call_dummy = deprecated_pc_in_call_dummy; + gdbarch->register_sim_regno = register_sim_regno; } -LONGEST * -gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch) +int +gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */ - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_words called\n"); - return gdbarch->deprecated_call_dummy_words; -} - -void -set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, - LONGEST * deprecated_call_dummy_words) -{ - gdbarch->deprecated_call_dummy_words = deprecated_call_dummy_words; + return gdbarch->register_bytes_ok != 0; } int -gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch) +gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes) { gdb_assert (gdbarch != NULL); - /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */ + if (gdbarch->register_bytes_ok == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_register_bytes_ok invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_sizeof_call_dummy_words called\n"); - return gdbarch->deprecated_sizeof_call_dummy_words; + fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n"); + return gdbarch->register_bytes_ok (nr_bytes); } void -set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch, - int deprecated_sizeof_call_dummy_words) +set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch, + gdbarch_register_bytes_ok_ftype register_bytes_ok) { - gdbarch->deprecated_sizeof_call_dummy_words = deprecated_sizeof_call_dummy_words; + gdbarch->register_bytes_ok = register_bytes_ok; } int -gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch) +gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum) { gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_call_dummy_stack_adjust != 0; + if (gdbarch->cannot_fetch_register == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_cannot_fetch_register invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n"); + return gdbarch->cannot_fetch_register (regnum); +} + +void +set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, + gdbarch_cannot_fetch_register_ftype cannot_fetch_register) +{ + gdbarch->cannot_fetch_register = cannot_fetch_register; } int -gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch) +gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum) { gdb_assert (gdbarch != NULL); + if (gdbarch->cannot_store_register == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_cannot_store_register invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_stack_adjust called\n"); - return gdbarch->deprecated_call_dummy_stack_adjust; + fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n"); + return gdbarch->cannot_store_register (regnum); } void -set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch, - int deprecated_call_dummy_stack_adjust) +set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, + gdbarch_cannot_store_register_ftype cannot_store_register) { - gdbarch->deprecated_call_dummy_stack_adjust = deprecated_call_dummy_stack_adjust; + gdbarch->cannot_store_register = cannot_store_register; } int -gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch) +gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_fix_call_dummy != 0; + return gdbarch->get_longjmp_target != 0; } -void -gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p) +int +gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc) { gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_fix_call_dummy == 0) + if (gdbarch->get_longjmp_target == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_fix_call_dummy invalid"); + "gdbarch: gdbarch_get_longjmp_target invalid"); if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fix_call_dummy called\n"); - gdbarch->deprecated_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p); + fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n"); + return gdbarch->get_longjmp_target (pc); } void -set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, - gdbarch_deprecated_fix_call_dummy_ftype deprecated_fix_call_dummy) +set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, + gdbarch_get_longjmp_target_ftype get_longjmp_target) { - gdbarch->deprecated_fix_call_dummy = deprecated_fix_call_dummy; + gdbarch->get_longjmp_target = get_longjmp_target; } int -gdbarch_push_dummy_code_p (struct gdbarch *gdbarch) +gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); - return gdbarch->push_dummy_code != 0; + return gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy; } -CORE_ADDR -gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr) +int +gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address) { gdb_assert (gdbarch != NULL); - if (gdbarch->push_dummy_code == 0) + if (gdbarch->deprecated_pc_in_call_dummy == 0) internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_push_dummy_code invalid"); + "gdbarch: gdbarch_deprecated_pc_in_call_dummy invalid"); + /* Ignore predicate (gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy). */ if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n"); - return gdbarch->push_dummy_code (gdbarch, sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n"); + return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address); } void -set_gdbarch_push_dummy_code (struct gdbarch *gdbarch, - gdbarch_push_dummy_code_ftype push_dummy_code) +set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, + gdbarch_deprecated_pc_in_call_dummy_ftype deprecated_pc_in_call_dummy) { - gdbarch->push_dummy_code = push_dummy_code; + gdbarch->deprecated_pc_in_call_dummy = deprecated_pc_in_call_dummy; } int @@ -4353,110 +4474,6 @@ set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch->return_value_on_stack = return_value_on_stack; } -int -gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_push_arguments != 0; -} - -CORE_ADDR -gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_push_arguments == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_push_arguments invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_arguments called\n"); - return gdbarch->deprecated_push_arguments (nargs, args, sp, struct_return, struct_addr); -} - -void -set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, - gdbarch_deprecated_push_arguments_ftype deprecated_push_arguments) -{ - gdbarch->deprecated_push_arguments = deprecated_push_arguments; -} - -int -gdbarch_push_dummy_call_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->push_dummy_call != 0; -} - -CORE_ADDR -gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->push_dummy_call == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_push_dummy_call invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n"); - return gdbarch->push_dummy_call (gdbarch, func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr); -} - -void -set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, - gdbarch_push_dummy_call_ftype push_dummy_call) -{ - gdbarch->push_dummy_call = push_dummy_call; -} - -int -gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_push_dummy_frame != 0; -} - -void -gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_push_dummy_frame == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_push_dummy_frame invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_dummy_frame called\n"); - gdbarch->deprecated_push_dummy_frame (); -} - -void -set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, - gdbarch_deprecated_push_dummy_frame_ftype deprecated_push_dummy_frame) -{ - gdbarch->deprecated_push_dummy_frame = deprecated_push_dummy_frame; -} - -int -gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_push_return_address != 0; -} - -CORE_ADDR -gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_push_return_address == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_push_return_address invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_return_address called\n"); - return gdbarch->deprecated_push_return_address (pc, sp); -} - -void -set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, - gdbarch_deprecated_push_return_address_ftype deprecated_push_return_address) -{ - gdbarch->deprecated_push_return_address = deprecated_push_return_address; -} - int gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch) { @@ -5208,23 +5225,6 @@ set_gdbarch_frame_align (struct gdbarch *gdbarch, gdbarch->frame_align = frame_align; } -int -gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */ - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extra_stack_alignment_needed called\n"); - return gdbarch->deprecated_extra_stack_alignment_needed; -} - -void -set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch, - int deprecated_extra_stack_alignment_needed) -{ - gdbarch->deprecated_extra_stack_alignment_needed = deprecated_extra_stack_alignment_needed; -} - int gdbarch_reg_struct_has_addr_p (struct gdbarch *gdbarch) { diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 93c19700475..e5800ad9dad 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -370,43 +370,6 @@ extern void set_gdbarch_read_sp (struct gdbarch *gdbarch, gdbarch_read_sp_ftype #define TARGET_READ_SP() (gdbarch_read_sp (current_gdbarch)) #endif -/* The dummy call frame SP should be set by push_dummy_call. */ - -#if defined (DEPRECATED_DUMMY_WRITE_SP) -/* Legacy for systems yet to multi-arch DEPRECATED_DUMMY_WRITE_SP */ -#if !defined (DEPRECATED_DUMMY_WRITE_SP_P) -#define DEPRECATED_DUMMY_WRITE_SP_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP_P) -#define DEPRECATED_DUMMY_WRITE_SP_P() (0) -#endif - -extern int gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DUMMY_WRITE_SP_P) -#error "Non multi-arch definition of DEPRECATED_DUMMY_WRITE_SP" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_DUMMY_WRITE_SP_P) -#define DEPRECATED_DUMMY_WRITE_SP_P() (gdbarch_deprecated_dummy_write_sp_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP) -#define DEPRECATED_DUMMY_WRITE_SP(val) (internal_error (__FILE__, __LINE__, "DEPRECATED_DUMMY_WRITE_SP"), 0) -#endif - -typedef void (gdbarch_deprecated_dummy_write_sp_ftype) (CORE_ADDR val); -extern void gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val); -extern void set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DUMMY_WRITE_SP) -#error "Non multi-arch definition of DEPRECATED_DUMMY_WRITE_SP" -#endif -#if !defined (DEPRECATED_DUMMY_WRITE_SP) -#define DEPRECATED_DUMMY_WRITE_SP(val) (gdbarch_deprecated_dummy_write_sp (current_gdbarch, val)) -#endif - /* Function for getting target's idea of a frame pointer. FIXME: GDB's whole scheme for dealing with "frames" and "frame pointers" needs a serious shakedown. */ @@ -641,17 +604,6 @@ extern void set_gdbarch_register_name (struct gdbarch *gdbarch, gdbarch_register #define REGISTER_NAME(regnr) (gdbarch_register_name (current_gdbarch, regnr)) #endif -/* See the dummy frame code. */ - -extern int gdbarch_deprecated_register_size (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch, int deprecated_register_size); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_REGISTER_SIZE) -#error "Non multi-arch definition of DEPRECATED_REGISTER_SIZE" -#endif -#if !defined (DEPRECATED_REGISTER_SIZE) -#define DEPRECATED_REGISTER_SIZE (gdbarch_deprecated_register_size (current_gdbarch)) -#endif - /* REGISTER_TYPE is a direct replacement for REGISTER_VIRTUAL_TYPE. */ extern int gdbarch_register_type_p (struct gdbarch *gdbarch); @@ -967,6 +919,384 @@ extern void set_gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch, gdba #define DEPRECATED_TARGET_READ_FP() (gdbarch_deprecated_target_read_fp (current_gdbarch)) #endif +/* See gdbint.texinfo. See infcall.c. New, all singing all dancing, + replacement for DEPRECATED_PUSH_ARGUMENTS. */ + +extern int gdbarch_push_dummy_call_p (struct gdbarch *gdbarch); + +typedef CORE_ADDR (gdbarch_push_dummy_call_ftype) (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); +extern CORE_ADDR gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); +extern void set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, gdbarch_push_dummy_call_ftype *push_dummy_call); + +/* PUSH_DUMMY_CALL is a direct replacement for DEPRECATED_PUSH_ARGUMENTS. */ + +#if defined (DEPRECATED_PUSH_ARGUMENTS) +/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_ARGUMENTS */ +#if !defined (DEPRECATED_PUSH_ARGUMENTS_P) +#define DEPRECATED_PUSH_ARGUMENTS_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS_P) +#define DEPRECATED_PUSH_ARGUMENTS_P() (0) +#endif + +extern int gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS_P) +#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_ARGUMENTS_P) +#define DEPRECATED_PUSH_ARGUMENTS_P() (gdbarch_deprecated_push_arguments_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS) +#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_ARGUMENTS"), 0) +#endif + +typedef CORE_ADDR (gdbarch_deprecated_push_arguments_ftype) (int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); +extern CORE_ADDR gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); +extern void set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS) +#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS" +#endif +#if !defined (DEPRECATED_PUSH_ARGUMENTS) +#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (gdbarch_deprecated_push_arguments (current_gdbarch, nargs, args, sp, struct_return, struct_addr)) +#endif + +/* DEPRECATED_USE_GENERIC_DUMMY_FRAMES can be deleted. Always true. */ + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (1) +#endif + +extern int gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, int deprecated_use_generic_dummy_frames); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#error "Non multi-arch definition of DEPRECATED_USE_GENERIC_DUMMY_FRAMES" +#endif +#if !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) +#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (gdbarch_deprecated_use_generic_dummy_frames (current_gdbarch)) +#endif + +/* Implement PUSH_RETURN_ADDRESS, and then merge in + DEPRECATED_PUSH_RETURN_ADDRESS. */ + +#if defined (DEPRECATED_PUSH_RETURN_ADDRESS) +/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_RETURN_ADDRESS */ +#if !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) +#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) +#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (0) +#endif + +extern int gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) +#error "Non multi-arch definition of DEPRECATED_PUSH_RETURN_ADDRESS" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) +#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (gdbarch_deprecated_push_return_address_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS) +#define DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_RETURN_ADDRESS"), 0) +#endif + +typedef CORE_ADDR (gdbarch_deprecated_push_return_address_ftype) (CORE_ADDR pc, CORE_ADDR sp); +extern CORE_ADDR gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp); +extern void set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_RETURN_ADDRESS) +#error "Non multi-arch definition of DEPRECATED_PUSH_RETURN_ADDRESS" +#endif +#if !defined (DEPRECATED_PUSH_RETURN_ADDRESS) +#define DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp) (gdbarch_deprecated_push_return_address (current_gdbarch, pc, sp)) +#endif + +/* Implement PUSH_DUMMY_CALL, then merge in DEPRECATED_DUMMY_WRITE_SP. */ + +#if defined (DEPRECATED_DUMMY_WRITE_SP) +/* Legacy for systems yet to multi-arch DEPRECATED_DUMMY_WRITE_SP */ +#if !defined (DEPRECATED_DUMMY_WRITE_SP_P) +#define DEPRECATED_DUMMY_WRITE_SP_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP_P) +#define DEPRECATED_DUMMY_WRITE_SP_P() (0) +#endif + +extern int gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DUMMY_WRITE_SP_P) +#error "Non multi-arch definition of DEPRECATED_DUMMY_WRITE_SP" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_DUMMY_WRITE_SP_P) +#define DEPRECATED_DUMMY_WRITE_SP_P() (gdbarch_deprecated_dummy_write_sp_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP) +#define DEPRECATED_DUMMY_WRITE_SP(val) (internal_error (__FILE__, __LINE__, "DEPRECATED_DUMMY_WRITE_SP"), 0) +#endif + +typedef void (gdbarch_deprecated_dummy_write_sp_ftype) (CORE_ADDR val); +extern void gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val); +extern void set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DUMMY_WRITE_SP) +#error "Non multi-arch definition of DEPRECATED_DUMMY_WRITE_SP" +#endif +#if !defined (DEPRECATED_DUMMY_WRITE_SP) +#define DEPRECATED_DUMMY_WRITE_SP(val) (gdbarch_deprecated_dummy_write_sp (current_gdbarch, val)) +#endif + +/* DEPRECATED_REGISTER_SIZE can be deleted. */ + +extern int gdbarch_deprecated_register_size (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch, int deprecated_register_size); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_REGISTER_SIZE) +#error "Non multi-arch definition of DEPRECATED_REGISTER_SIZE" +#endif +#if !defined (DEPRECATED_REGISTER_SIZE) +#define DEPRECATED_REGISTER_SIZE (gdbarch_deprecated_register_size (current_gdbarch)) +#endif + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_LOCATION) +#define CALL_DUMMY_LOCATION (AT_ENTRY_POINT) +#endif + +extern int gdbarch_call_dummy_location (struct gdbarch *gdbarch); +extern void set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, int call_dummy_location); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_LOCATION) +#error "Non multi-arch definition of CALL_DUMMY_LOCATION" +#endif +#if !defined (CALL_DUMMY_LOCATION) +#define CALL_DUMMY_LOCATION (gdbarch_call_dummy_location (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_ADDRESS) +#define CALL_DUMMY_ADDRESS() (entry_point_address ()) +#endif + +typedef CORE_ADDR (gdbarch_call_dummy_address_ftype) (void); +extern CORE_ADDR gdbarch_call_dummy_address (struct gdbarch *gdbarch); +extern void set_gdbarch_call_dummy_address (struct gdbarch *gdbarch, gdbarch_call_dummy_address_ftype *call_dummy_address); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_ADDRESS) +#error "Non multi-arch definition of CALL_DUMMY_ADDRESS" +#endif +#if !defined (CALL_DUMMY_ADDRESS) +#define CALL_DUMMY_ADDRESS() (gdbarch_call_dummy_address (current_gdbarch)) +#endif + +/* DEPRECATED_CALL_DUMMY_START_OFFSET can be deleted. */ + +extern CORE_ADDR gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch, CORE_ADDR deprecated_call_dummy_start_offset); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_START_OFFSET) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_START_OFFSET" +#endif +#if !defined (DEPRECATED_CALL_DUMMY_START_OFFSET) +#define DEPRECATED_CALL_DUMMY_START_OFFSET (gdbarch_deprecated_call_dummy_start_offset (current_gdbarch)) +#endif + +/* DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET can be deleted. */ + +extern CORE_ADDR gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch, CORE_ADDR deprecated_call_dummy_breakpoint_offset); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET" +#endif +#if !defined (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET) +#define DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET (gdbarch_deprecated_call_dummy_breakpoint_offset (current_gdbarch)) +#endif + +/* DEPRECATED_CALL_DUMMY_LENGTH can be deleted. */ + +extern int gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch, int deprecated_call_dummy_length); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_LENGTH) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_LENGTH" +#endif +#if !defined (DEPRECATED_CALL_DUMMY_LENGTH) +#define DEPRECATED_CALL_DUMMY_LENGTH (gdbarch_deprecated_call_dummy_length (current_gdbarch)) +#endif + +/* DEPRECATED_CALL_DUMMY_WORDS can be deleted. */ + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_WORDS) +#define DEPRECATED_CALL_DUMMY_WORDS (legacy_call_dummy_words) +#endif + +extern LONGEST * gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, LONGEST * deprecated_call_dummy_words); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_WORDS) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_WORDS" +#endif +#if !defined (DEPRECATED_CALL_DUMMY_WORDS) +#define DEPRECATED_CALL_DUMMY_WORDS (gdbarch_deprecated_call_dummy_words (current_gdbarch)) +#endif + +/* Implement PUSH_DUMMY_CALL, then delete DEPRECATED_SIZEOF_CALL_DUMMY_WORDS. */ + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) +#define DEPRECATED_SIZEOF_CALL_DUMMY_WORDS (legacy_sizeof_call_dummy_words) +#endif + +extern int gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch, int deprecated_sizeof_call_dummy_words); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) +#error "Non multi-arch definition of DEPRECATED_SIZEOF_CALL_DUMMY_WORDS" +#endif +#if !defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) +#define DEPRECATED_SIZEOF_CALL_DUMMY_WORDS (gdbarch_deprecated_sizeof_call_dummy_words (current_gdbarch)) +#endif + +/* Implement PUSH_DUMMY_CALL, then delete DEPRECATED_CALL_DUMMY_STACK_ADJUST. */ + +#if defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) +/* Legacy for systems yet to multi-arch DEPRECATED_CALL_DUMMY_STACK_ADJUST */ +#if !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) +#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) +#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (0) +#endif + +extern int gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_STACK_ADJUST" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) +#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (gdbarch_deprecated_call_dummy_stack_adjust_p (current_gdbarch)) +#endif + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) +#define DEPRECATED_CALL_DUMMY_STACK_ADJUST (0) +#endif + +extern int gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch, int deprecated_call_dummy_stack_adjust); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) +#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_STACK_ADJUST" +#endif +#if !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) +#define DEPRECATED_CALL_DUMMY_STACK_ADJUST (gdbarch_deprecated_call_dummy_stack_adjust (current_gdbarch)) +#endif + +/* DEPRECATED_FIX_CALL_DUMMY can be deleted. For the SPARC, implement + PUSH_DUMMY_CODE and set CALL_DUMMY_LOCATION to ON_STACK. */ + +#if defined (DEPRECATED_FIX_CALL_DUMMY) +/* Legacy for systems yet to multi-arch DEPRECATED_FIX_CALL_DUMMY */ +#if !defined (DEPRECATED_FIX_CALL_DUMMY_P) +#define DEPRECATED_FIX_CALL_DUMMY_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY_P) +#define DEPRECATED_FIX_CALL_DUMMY_P() (0) +#endif + +extern int gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FIX_CALL_DUMMY_P) +#error "Non multi-arch definition of DEPRECATED_FIX_CALL_DUMMY" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FIX_CALL_DUMMY_P) +#define DEPRECATED_FIX_CALL_DUMMY_P() (gdbarch_deprecated_fix_call_dummy_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY) +#define DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p) (internal_error (__FILE__, __LINE__, "DEPRECATED_FIX_CALL_DUMMY"), 0) +#endif + +typedef void (gdbarch_deprecated_fix_call_dummy_ftype) (char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p); +extern void gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p); +extern void set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, gdbarch_deprecated_fix_call_dummy_ftype *deprecated_fix_call_dummy); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FIX_CALL_DUMMY) +#error "Non multi-arch definition of DEPRECATED_FIX_CALL_DUMMY" +#endif +#if !defined (DEPRECATED_FIX_CALL_DUMMY) +#define DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p) (gdbarch_deprecated_fix_call_dummy (current_gdbarch, dummy, pc, fun, nargs, args, type, gcc_p)) +#endif + +/* This is a replacement for DEPRECATED_FIX_CALL_DUMMY et.al. */ + +extern int gdbarch_push_dummy_code_p (struct gdbarch *gdbarch); + +typedef CORE_ADDR (gdbarch_push_dummy_code_ftype) (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr); +extern CORE_ADDR gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr); +extern void set_gdbarch_push_dummy_code (struct gdbarch *gdbarch, gdbarch_push_dummy_code_ftype *push_dummy_code); + +/* Implement PUSH_DUMMY_CALL, then delete DEPRECATED_PUSH_DUMMY_FRAME. */ + +#if defined (DEPRECATED_PUSH_DUMMY_FRAME) +/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_DUMMY_FRAME */ +#if !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) +#define DEPRECATED_PUSH_DUMMY_FRAME_P() (1) +#endif +#endif + +/* Default predicate for non- multi-arch targets. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) +#define DEPRECATED_PUSH_DUMMY_FRAME_P() (0) +#endif + +extern int gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_DUMMY_FRAME_P) +#error "Non multi-arch definition of DEPRECATED_PUSH_DUMMY_FRAME" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) +#define DEPRECATED_PUSH_DUMMY_FRAME_P() (gdbarch_deprecated_push_dummy_frame_p (current_gdbarch)) +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME) +#define DEPRECATED_PUSH_DUMMY_FRAME (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_DUMMY_FRAME"), 0) +#endif + +typedef void (gdbarch_deprecated_push_dummy_frame_ftype) (void); +extern void gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_DUMMY_FRAME) +#error "Non multi-arch definition of DEPRECATED_PUSH_DUMMY_FRAME" +#endif +#if !defined (DEPRECATED_PUSH_DUMMY_FRAME) +#define DEPRECATED_PUSH_DUMMY_FRAME (gdbarch_deprecated_push_dummy_frame (current_gdbarch)) +#endif + +/* Implement PUSH_DUMMY_CALL, then delete + DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED. */ + +/* Default (value) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) +#define DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED (0) +#endif + +extern int gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch); +extern void set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch, int deprecated_extra_stack_alignment_needed); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) +#error "Non multi-arch definition of DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED" +#endif +#if !defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) +#define DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED (gdbarch_deprecated_extra_stack_alignment_needed (current_gdbarch)) +#endif + #if defined (DEPRECATED_DO_REGISTERS_INFO) /* Legacy for systems yet to multi-arch DEPRECATED_DO_REGISTERS_INFO */ #if !defined (DEPRECATED_DO_REGISTERS_INFO_P) @@ -1119,111 +1449,23 @@ extern int gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch); #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (GET_LONGJMP_TARGET_P) #error "Non multi-arch definition of GET_LONGJMP_TARGET" #endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (GET_LONGJMP_TARGET_P) -#define GET_LONGJMP_TARGET_P() (gdbarch_get_longjmp_target_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (GET_LONGJMP_TARGET) -#define GET_LONGJMP_TARGET(pc) (internal_error (__FILE__, __LINE__, "GET_LONGJMP_TARGET"), 0) -#endif - -typedef int (gdbarch_get_longjmp_target_ftype) (CORE_ADDR *pc); -extern int gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc); -extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get_longjmp_target_ftype *get_longjmp_target); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (GET_LONGJMP_TARGET) -#error "Non multi-arch definition of GET_LONGJMP_TARGET" -#endif -#if !defined (GET_LONGJMP_TARGET) -#define GET_LONGJMP_TARGET(pc) (gdbarch_get_longjmp_target (current_gdbarch, pc)) -#endif - -/* Non multi-arch DUMMY_FRAMES are a mess (multi-arch ones are not that - much better but at least they are vaguely consistent). The headers - and body contain convoluted #if/#else sequences for determine how - things should be compiled. Instead of trying to mimic that - behaviour here (and hence entrench it further) gdbarch simply - reqires that these methods be set up from the word go. This also - avoids any potential problems with moving beyond multi-arch partial. */ - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) -#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (1) -#endif - -extern int gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, int deprecated_use_generic_dummy_frames); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) -#error "Non multi-arch definition of DEPRECATED_USE_GENERIC_DUMMY_FRAMES" -#endif -#if !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES) -#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (gdbarch_deprecated_use_generic_dummy_frames (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_LOCATION) -#define CALL_DUMMY_LOCATION (AT_ENTRY_POINT) -#endif - -extern int gdbarch_call_dummy_location (struct gdbarch *gdbarch); -extern void set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, int call_dummy_location); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_LOCATION) -#error "Non multi-arch definition of CALL_DUMMY_LOCATION" -#endif -#if !defined (CALL_DUMMY_LOCATION) -#define CALL_DUMMY_LOCATION (gdbarch_call_dummy_location (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_ADDRESS) -#define CALL_DUMMY_ADDRESS() (entry_point_address ()) -#endif - -typedef CORE_ADDR (gdbarch_call_dummy_address_ftype) (void); -extern CORE_ADDR gdbarch_call_dummy_address (struct gdbarch *gdbarch); -extern void set_gdbarch_call_dummy_address (struct gdbarch *gdbarch, gdbarch_call_dummy_address_ftype *call_dummy_address); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_ADDRESS) -#error "Non multi-arch definition of CALL_DUMMY_ADDRESS" -#endif -#if !defined (CALL_DUMMY_ADDRESS) -#define CALL_DUMMY_ADDRESS() (gdbarch_call_dummy_address (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -extern CORE_ADDR gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch, CORE_ADDR deprecated_call_dummy_start_offset); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_START_OFFSET) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_START_OFFSET" -#endif -#if !defined (DEPRECATED_CALL_DUMMY_START_OFFSET) -#define DEPRECATED_CALL_DUMMY_START_OFFSET (gdbarch_deprecated_call_dummy_start_offset (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -extern CORE_ADDR gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch, CORE_ADDR deprecated_call_dummy_breakpoint_offset); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET" -#endif -#if !defined (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET) -#define DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET (gdbarch_deprecated_call_dummy_breakpoint_offset (current_gdbarch)) +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (GET_LONGJMP_TARGET_P) +#define GET_LONGJMP_TARGET_P() (gdbarch_get_longjmp_target_p (current_gdbarch)) #endif -/* Replaced by push_dummy_code. */ +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (GET_LONGJMP_TARGET) +#define GET_LONGJMP_TARGET(pc) (internal_error (__FILE__, __LINE__, "GET_LONGJMP_TARGET"), 0) +#endif -extern int gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch, int deprecated_call_dummy_length); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_LENGTH) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_LENGTH" +typedef int (gdbarch_get_longjmp_target_ftype) (CORE_ADDR *pc); +extern int gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc); +extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get_longjmp_target_ftype *get_longjmp_target); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (GET_LONGJMP_TARGET) +#error "Non multi-arch definition of GET_LONGJMP_TARGET" #endif -#if !defined (DEPRECATED_CALL_DUMMY_LENGTH) -#define DEPRECATED_CALL_DUMMY_LENGTH (gdbarch_deprecated_call_dummy_length (current_gdbarch)) +#if !defined (GET_LONGJMP_TARGET) +#define GET_LONGJMP_TARGET(pc) (gdbarch_get_longjmp_target (current_gdbarch, pc)) #endif /* NOTE: cagney/2002-11-24: This function with predicate has a valid @@ -1267,119 +1509,6 @@ extern void set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, gd #define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) (gdbarch_deprecated_pc_in_call_dummy (current_gdbarch, pc, sp, frame_address)) #endif -/* Replaced by push_dummy_code. */ - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_WORDS) -#define DEPRECATED_CALL_DUMMY_WORDS (legacy_call_dummy_words) -#endif - -extern LONGEST * gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, LONGEST * deprecated_call_dummy_words); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_WORDS) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_WORDS" -#endif -#if !defined (DEPRECATED_CALL_DUMMY_WORDS) -#define DEPRECATED_CALL_DUMMY_WORDS (gdbarch_deprecated_call_dummy_words (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) -#define DEPRECATED_SIZEOF_CALL_DUMMY_WORDS (legacy_sizeof_call_dummy_words) -#endif - -extern int gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch, int deprecated_sizeof_call_dummy_words); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) -#error "Non multi-arch definition of DEPRECATED_SIZEOF_CALL_DUMMY_WORDS" -#endif -#if !defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS) -#define DEPRECATED_SIZEOF_CALL_DUMMY_WORDS (gdbarch_deprecated_sizeof_call_dummy_words (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -#if defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) -/* Legacy for systems yet to multi-arch DEPRECATED_CALL_DUMMY_STACK_ADJUST */ -#if !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) -#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) -#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (0) -#endif - -extern int gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_STACK_ADJUST" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P) -#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (gdbarch_deprecated_call_dummy_stack_adjust_p (current_gdbarch)) -#endif - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) -#define DEPRECATED_CALL_DUMMY_STACK_ADJUST (0) -#endif - -extern int gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch, int deprecated_call_dummy_stack_adjust); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) -#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_STACK_ADJUST" -#endif -#if !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST) -#define DEPRECATED_CALL_DUMMY_STACK_ADJUST (gdbarch_deprecated_call_dummy_stack_adjust (current_gdbarch)) -#endif - -/* Replaced by push_dummy_code. */ - -#if defined (DEPRECATED_FIX_CALL_DUMMY) -/* Legacy for systems yet to multi-arch DEPRECATED_FIX_CALL_DUMMY */ -#if !defined (DEPRECATED_FIX_CALL_DUMMY_P) -#define DEPRECATED_FIX_CALL_DUMMY_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY_P) -#define DEPRECATED_FIX_CALL_DUMMY_P() (0) -#endif - -extern int gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FIX_CALL_DUMMY_P) -#error "Non multi-arch definition of DEPRECATED_FIX_CALL_DUMMY" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FIX_CALL_DUMMY_P) -#define DEPRECATED_FIX_CALL_DUMMY_P() (gdbarch_deprecated_fix_call_dummy_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY) -#define DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p) (internal_error (__FILE__, __LINE__, "DEPRECATED_FIX_CALL_DUMMY"), 0) -#endif - -typedef void (gdbarch_deprecated_fix_call_dummy_ftype) (char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p); -extern void gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p); -extern void set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, gdbarch_deprecated_fix_call_dummy_ftype *deprecated_fix_call_dummy); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FIX_CALL_DUMMY) -#error "Non multi-arch definition of DEPRECATED_FIX_CALL_DUMMY" -#endif -#if !defined (DEPRECATED_FIX_CALL_DUMMY) -#define DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p) (gdbarch_deprecated_fix_call_dummy (current_gdbarch, dummy, pc, fun, nargs, args, type, gcc_p)) -#endif - -/* This is a replacement for DEPRECATED_FIX_CALL_DUMMY et.al. */ - -extern int gdbarch_push_dummy_code_p (struct gdbarch *gdbarch); - -typedef CORE_ADDR (gdbarch_push_dummy_code_ftype) (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr); -extern CORE_ADDR gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr); -extern void set_gdbarch_push_dummy_code (struct gdbarch *gdbarch, gdbarch_push_dummy_code_ftype *push_dummy_code); - #if defined (DEPRECATED_INIT_FRAME_PC_FIRST) /* Legacy for systems yet to multi-arch DEPRECATED_INIT_FRAME_PC_FIRST */ #if !defined (DEPRECATED_INIT_FRAME_PC_FIRST_P) @@ -1682,121 +1811,6 @@ extern void set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch_ #define RETURN_VALUE_ON_STACK(type) (gdbarch_return_value_on_stack (current_gdbarch, type)) #endif -/* Replaced by PUSH_DUMMY_CALL */ - -#if defined (DEPRECATED_PUSH_ARGUMENTS) -/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_ARGUMENTS */ -#if !defined (DEPRECATED_PUSH_ARGUMENTS_P) -#define DEPRECATED_PUSH_ARGUMENTS_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS_P) -#define DEPRECATED_PUSH_ARGUMENTS_P() (0) -#endif - -extern int gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS_P) -#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_ARGUMENTS_P) -#define DEPRECATED_PUSH_ARGUMENTS_P() (gdbarch_deprecated_push_arguments_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS) -#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_ARGUMENTS"), 0) -#endif - -typedef CORE_ADDR (gdbarch_deprecated_push_arguments_ftype) (int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); -extern CORE_ADDR gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); -extern void set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS) -#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS" -#endif -#if !defined (DEPRECATED_PUSH_ARGUMENTS) -#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (gdbarch_deprecated_push_arguments (current_gdbarch, nargs, args, sp, struct_return, struct_addr)) -#endif - -extern int gdbarch_push_dummy_call_p (struct gdbarch *gdbarch); - -typedef CORE_ADDR (gdbarch_push_dummy_call_ftype) (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); -extern CORE_ADDR gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr); -extern void set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, gdbarch_push_dummy_call_ftype *push_dummy_call); - -#if defined (DEPRECATED_PUSH_DUMMY_FRAME) -/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_DUMMY_FRAME */ -#if !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) -#define DEPRECATED_PUSH_DUMMY_FRAME_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) -#define DEPRECATED_PUSH_DUMMY_FRAME_P() (0) -#endif - -extern int gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_DUMMY_FRAME_P) -#error "Non multi-arch definition of DEPRECATED_PUSH_DUMMY_FRAME" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_DUMMY_FRAME_P) -#define DEPRECATED_PUSH_DUMMY_FRAME_P() (gdbarch_deprecated_push_dummy_frame_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME) -#define DEPRECATED_PUSH_DUMMY_FRAME (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_DUMMY_FRAME"), 0) -#endif - -typedef void (gdbarch_deprecated_push_dummy_frame_ftype) (void); -extern void gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_DUMMY_FRAME) -#error "Non multi-arch definition of DEPRECATED_PUSH_DUMMY_FRAME" -#endif -#if !defined (DEPRECATED_PUSH_DUMMY_FRAME) -#define DEPRECATED_PUSH_DUMMY_FRAME (gdbarch_deprecated_push_dummy_frame (current_gdbarch)) -#endif - -/* NOTE: This can be handled directly in push_dummy_call. */ - -#if defined (DEPRECATED_PUSH_RETURN_ADDRESS) -/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_RETURN_ADDRESS */ -#if !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) -#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (1) -#endif -#endif - -/* Default predicate for non- multi-arch targets. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) -#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (0) -#endif - -extern int gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) -#error "Non multi-arch definition of DEPRECATED_PUSH_RETURN_ADDRESS" -#endif -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P) -#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (gdbarch_deprecated_push_return_address_p (current_gdbarch)) -#endif - -/* Default (function) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS) -#define DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_RETURN_ADDRESS"), 0) -#endif - -typedef CORE_ADDR (gdbarch_deprecated_push_return_address_ftype) (CORE_ADDR pc, CORE_ADDR sp); -extern CORE_ADDR gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp); -extern void set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_RETURN_ADDRESS) -#error "Non multi-arch definition of DEPRECATED_PUSH_RETURN_ADDRESS" -#endif -#if !defined (DEPRECATED_PUSH_RETURN_ADDRESS) -#define DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp) (gdbarch_deprecated_push_return_address (current_gdbarch, pc, sp)) -#endif - #if defined (DEPRECATED_POP_FRAME) /* Legacy for systems yet to multi-arch DEPRECATED_POP_FRAME */ #if !defined (DEPRECATED_POP_FRAME_P) @@ -2472,22 +2486,6 @@ typedef CORE_ADDR (gdbarch_frame_align_ftype) (struct gdbarch *gdbarch, CORE_ADD extern CORE_ADDR gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address); extern void set_gdbarch_frame_align (struct gdbarch *gdbarch, gdbarch_frame_align_ftype *frame_align); -/* NOTE: cagney/2003-03-24: This is better handled by PUSH_ARGUMENTS. */ - -/* Default (value) for non- multi-arch platforms. */ -#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) -#define DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED (0) -#endif - -extern int gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch); -extern void set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch, int deprecated_extra_stack_alignment_needed); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) -#error "Non multi-arch definition of DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED" -#endif -#if !defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED) -#define DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED (gdbarch_deprecated_extra_stack_alignment_needed (current_gdbarch)) -#endif - #if defined (REG_STRUCT_HAS_ADDR) /* Legacy for systems yet to multi-arch REG_STRUCT_HAS_ADDR */ #if !defined (REG_STRUCT_HAS_ADDR_P) diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index ba279be9996..aee39b45823 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -430,8 +430,6 @@ F:2:TARGET_READ_PC:CORE_ADDR:read_pc:ptid_t ptid:ptid f:2:TARGET_WRITE_PC:void:write_pc:CORE_ADDR val, ptid_t ptid:val, ptid::0:generic_target_write_pc::0 # UNWIND_SP is a direct replacement for TARGET_READ_SP. F:2:TARGET_READ_SP:CORE_ADDR:read_sp:void -# The dummy call frame SP should be set by push_dummy_call. -F:2:DEPRECATED_DUMMY_WRITE_SP:void:deprecated_dummy_write_sp:CORE_ADDR val:val # Function for getting target's idea of a frame pointer. FIXME: GDB's # whole scheme for dealing with "frames" and "frame pointers" needs a # serious shakedown. @@ -468,8 +466,6 @@ f:2:DWARF_REG_TO_REGNUM:int:dwarf_reg_to_regnum:int dwarf_regnr:dwarf_regnr:::no f:2:SDB_REG_TO_REGNUM:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr:::no_op_reg_to_regnum::0 f:2:DWARF2_REG_TO_REGNUM:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr:::no_op_reg_to_regnum::0 f:2:REGISTER_NAME:const char *:register_name:int regnr:regnr:::legacy_register_name::0 -# See the dummy frame code. -v::DEPRECATED_REGISTER_SIZE:int:deprecated_register_size # REGISTER_TYPE is a direct replacement for REGISTER_VIRTUAL_TYPE. M:2:REGISTER_TYPE:struct type *:register_type:int reg_nr:reg_nr::0: @@ -515,6 +511,45 @@ v:2:DEPRECATED_FP_REGNUM:int:deprecated_fp_regnum::::-1:-1::0 # DEPRECATED_TARGET_READ_FP. F::DEPRECATED_TARGET_READ_FP:CORE_ADDR:deprecated_target_read_fp:void +# See gdbint.texinfo. See infcall.c. New, all singing all dancing, +# replacement for DEPRECATED_PUSH_ARGUMENTS. +M::PUSH_DUMMY_CALL:CORE_ADDR:push_dummy_call:CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr +# PUSH_DUMMY_CALL is a direct replacement for DEPRECATED_PUSH_ARGUMENTS. +F:2:DEPRECATED_PUSH_ARGUMENTS:CORE_ADDR:deprecated_push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr +# DEPRECATED_USE_GENERIC_DUMMY_FRAMES can be deleted. Always true. +v::DEPRECATED_USE_GENERIC_DUMMY_FRAMES:int:deprecated_use_generic_dummy_frames:::::1::0 +# Implement PUSH_RETURN_ADDRESS, and then merge in +# DEPRECATED_PUSH_RETURN_ADDRESS. +F:2:DEPRECATED_PUSH_RETURN_ADDRESS:CORE_ADDR:deprecated_push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0 +# Implement PUSH_DUMMY_CALL, then merge in DEPRECATED_DUMMY_WRITE_SP. +F:2:DEPRECATED_DUMMY_WRITE_SP:void:deprecated_dummy_write_sp:CORE_ADDR val:val +# DEPRECATED_REGISTER_SIZE can be deleted. +v::DEPRECATED_REGISTER_SIZE:int:deprecated_register_size +v::CALL_DUMMY_LOCATION:int:call_dummy_location:::::AT_ENTRY_POINT::0 +f::CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void::::entry_point_address::0 +# DEPRECATED_CALL_DUMMY_START_OFFSET can be deleted. +v::DEPRECATED_CALL_DUMMY_START_OFFSET:CORE_ADDR:deprecated_call_dummy_start_offset +# DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET can be deleted. +v::DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET:CORE_ADDR:deprecated_call_dummy_breakpoint_offset +# DEPRECATED_CALL_DUMMY_LENGTH can be deleted. +v::DEPRECATED_CALL_DUMMY_LENGTH:int:deprecated_call_dummy_length +# DEPRECATED_CALL_DUMMY_WORDS can be deleted. +v::DEPRECATED_CALL_DUMMY_WORDS:LONGEST *:deprecated_call_dummy_words::::0:legacy_call_dummy_words::0:0x%08lx +# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_SIZEOF_CALL_DUMMY_WORDS. +v::DEPRECATED_SIZEOF_CALL_DUMMY_WORDS:int:deprecated_sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words::0 +# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_CALL_DUMMY_STACK_ADJUST. +V:2:DEPRECATED_CALL_DUMMY_STACK_ADJUST:int:deprecated_call_dummy_stack_adjust::::0 +# DEPRECATED_FIX_CALL_DUMMY can be deleted. For the SPARC, implement +# PUSH_DUMMY_CODE and set CALL_DUMMY_LOCATION to ON_STACK. +F::DEPRECATED_FIX_CALL_DUMMY:void:deprecated_fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p +# This is a replacement for DEPRECATED_FIX_CALL_DUMMY et.al. +M::PUSH_DUMMY_CODE:CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr:sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr: +# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_PUSH_DUMMY_FRAME. +F:2:DEPRECATED_PUSH_DUMMY_FRAME:void:deprecated_push_dummy_frame:void:-:::0 +# Implement PUSH_DUMMY_CALL, then delete +# DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED. +v:2:DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED:int:deprecated_extra_stack_alignment_needed::::0:0::0::: + F:2:DEPRECATED_DO_REGISTERS_INFO:void:deprecated_do_registers_info:int reg_nr, int fpregs:reg_nr, fpregs m:2:PRINT_REGISTERS_INFO:void:print_registers_info:struct ui_file *file, struct frame_info *frame, int regnum, int all:file, frame, regnum, all:::default_print_registers_info::0 M:2:PRINT_FLOAT_INFO:void:print_float_info:struct ui_file *file, struct frame_info *frame, const char *args:file, frame, args @@ -527,41 +562,12 @@ f:2:CANNOT_FETCH_REGISTER:int:cannot_fetch_register:int regnum:regnum:::cannot_r f:2:CANNOT_STORE_REGISTER:int:cannot_store_register:int regnum:regnum:::cannot_register_not::0 # setjmp/longjmp support. F:2:GET_LONGJMP_TARGET:int:get_longjmp_target:CORE_ADDR *pc:pc::0:0 -# -# Non multi-arch DUMMY_FRAMES are a mess (multi-arch ones are not that -# much better but at least they are vaguely consistent). The headers -# and body contain convoluted #if/#else sequences for determine how -# things should be compiled. Instead of trying to mimic that -# behaviour here (and hence entrench it further) gdbarch simply -# reqires that these methods be set up from the word go. This also -# avoids any potential problems with moving beyond multi-arch partial. -v::DEPRECATED_USE_GENERIC_DUMMY_FRAMES:int:deprecated_use_generic_dummy_frames:::::1::0 -# Replaced by push_dummy_code. -v::CALL_DUMMY_LOCATION:int:call_dummy_location:::::AT_ENTRY_POINT::0 -# Replaced by push_dummy_code. -f::CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void::::entry_point_address::0 -# Replaced by push_dummy_code. -v::DEPRECATED_CALL_DUMMY_START_OFFSET:CORE_ADDR:deprecated_call_dummy_start_offset -# Replaced by push_dummy_code. -v::DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET:CORE_ADDR:deprecated_call_dummy_breakpoint_offset -# Replaced by push_dummy_code. -v::DEPRECATED_CALL_DUMMY_LENGTH:int:deprecated_call_dummy_length # NOTE: cagney/2002-11-24: This function with predicate has a valid # (callable) initial value. As a consequence, even when the predicate # is false, the corresponding function works. This simplifies the # migration process - old code, calling DEPRECATED_PC_IN_CALL_DUMMY(), # doesn't need to be modified. F::DEPRECATED_PC_IN_CALL_DUMMY:int:deprecated_pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::generic_pc_in_call_dummy:generic_pc_in_call_dummy -# Replaced by push_dummy_code. -v::DEPRECATED_CALL_DUMMY_WORDS:LONGEST *:deprecated_call_dummy_words::::0:legacy_call_dummy_words::0:0x%08lx -# Replaced by push_dummy_code. -v::DEPRECATED_SIZEOF_CALL_DUMMY_WORDS:int:deprecated_sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words::0 -# Replaced by push_dummy_code. -V:2:DEPRECATED_CALL_DUMMY_STACK_ADJUST:int:deprecated_call_dummy_stack_adjust::::0 -# Replaced by push_dummy_code. -F::DEPRECATED_FIX_CALL_DUMMY:void:deprecated_fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p -# This is a replacement for DEPRECATED_FIX_CALL_DUMMY et.al. -M::PUSH_DUMMY_CODE:CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr:sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr: F:2:DEPRECATED_INIT_FRAME_PC_FIRST:CORE_ADDR:deprecated_init_frame_pc_first:int fromleaf, struct frame_info *prev:fromleaf, prev F:2:DEPRECATED_INIT_FRAME_PC:CORE_ADDR:deprecated_init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev # @@ -588,12 +594,6 @@ f:2:ADDRESS_TO_POINTER:void:address_to_pointer:struct type *type, void *buf, COR F:2:INTEGER_TO_ADDRESS:CORE_ADDR:integer_to_address:struct type *type, void *buf:type, buf # f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0 -# Replaced by PUSH_DUMMY_CALL -F:2:DEPRECATED_PUSH_ARGUMENTS:CORE_ADDR:deprecated_push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr -M::PUSH_DUMMY_CALL:CORE_ADDR:push_dummy_call:CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr -F:2:DEPRECATED_PUSH_DUMMY_FRAME:void:deprecated_push_dummy_frame:void:-:::0 -# NOTE: This can be handled directly in push_dummy_call. -F:2:DEPRECATED_PUSH_RETURN_ADDRESS:CORE_ADDR:deprecated_push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0 F:2:DEPRECATED_POP_FRAME:void:deprecated_pop_frame:void:-:::0 # NOTE: cagney/2003-03-24: Replaced by PUSH_ARGUMENTS. F:2:DEPRECATED_STORE_STRUCT_RETURN:void:deprecated_store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp:::0 @@ -639,8 +639,6 @@ F:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame # F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp::0:0 M:::CORE_ADDR:frame_align:CORE_ADDR address:address -# NOTE: cagney/2003-03-24: This is better handled by PUSH_ARGUMENTS. -v:2:DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED:int:deprecated_extra_stack_alignment_needed::::0:0::0::: F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type::0:0 v:2:PARM_BOUNDARY:int:parm_boundary #