2003-02-27 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Procedure with predicate. Replaces PUSH_DUMMY_FRAME. * gdbarch.h, gdbarch.c: Regnerate. * valops.c (hand_function_call): Update. Call generic_push_dummy_frame directly. * vax-tdep.c (vax_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * ns32k-tdep.c (ns32k_gdbarch_init): Update. * m68k-tdep.c (m68k_gdbarch_init): Update. * hppa-tdep.c (hppa_gdbarch_init): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. * config/sparc/tm-sparc.h (DEPRECATED_PUSH_DUMMY_FRAME): Update. * config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Update. * inferior.h (PUSH_DUMMY_FRAME): Delete definition. * xstormy16-tdep.c (xstormy16_gdbarch_init): Don't set push_dummy_frame to generic_push_dummy_frame. * v850-tdep.c (v850_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto.
This commit is contained in:
parent
ef8038066b
commit
f3824013e0
30 changed files with 159 additions and 78 deletions
|
@ -1,3 +1,38 @@
|
||||||
|
2003-02-27 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
|
* gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Procedure with
|
||||||
|
predicate. Replaces PUSH_DUMMY_FRAME.
|
||||||
|
* gdbarch.h, gdbarch.c: Regnerate.
|
||||||
|
* valops.c (hand_function_call): Update. Call
|
||||||
|
generic_push_dummy_frame directly.
|
||||||
|
* vax-tdep.c (vax_gdbarch_init): Update.
|
||||||
|
* sparc-tdep.c (sparc_gdbarch_init): Update.
|
||||||
|
* ns32k-tdep.c (ns32k_gdbarch_init): Update.
|
||||||
|
* m68k-tdep.c (m68k_gdbarch_init): Update.
|
||||||
|
* hppa-tdep.c (hppa_gdbarch_init): Update.
|
||||||
|
* alpha-tdep.c (alpha_gdbarch_init): Update.
|
||||||
|
* config/sparc/tm-sparc.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
|
||||||
|
* config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
|
||||||
|
* inferior.h (PUSH_DUMMY_FRAME): Delete definition.
|
||||||
|
* xstormy16-tdep.c (xstormy16_gdbarch_init): Don't set
|
||||||
|
push_dummy_frame to generic_push_dummy_frame.
|
||||||
|
* v850-tdep.c (v850_gdbarch_init): Ditto.
|
||||||
|
* sh-tdep.c (sh_gdbarch_init): Ditto.
|
||||||
|
* s390-tdep.c (s390_gdbarch_init): Ditto.
|
||||||
|
* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
|
||||||
|
* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
|
||||||
|
* mips-tdep.c (mips_gdbarch_init): Ditto.
|
||||||
|
* mcore-tdep.c (mcore_gdbarch_init): Ditto.
|
||||||
|
* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
|
||||||
|
* ia64-tdep.c (ia64_gdbarch_init): Ditto.
|
||||||
|
* i386-tdep.c (i386_gdbarch_init): Ditto.
|
||||||
|
* h8300-tdep.c (h8300_gdbarch_init): Ditto.
|
||||||
|
* frv-tdep.c (frv_gdbarch_init): Ditto.
|
||||||
|
* d10v-tdep.c (d10v_gdbarch_init): Ditto.
|
||||||
|
* cris-tdep.c (cris_gdbarch_init): Ditto.
|
||||||
|
* avr-tdep.c (avr_gdbarch_init): Ditto.
|
||||||
|
* arm-tdep.c (arm_gdbarch_init): Ditto.
|
||||||
|
|
||||||
2003-02-26 Kevin Buettner <kevinb@redhat.com>
|
2003-02-26 Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
* mips-tdep.c (show_mips_abi): New function.
|
* mips-tdep.c (show_mips_abi): New function.
|
||||||
|
|
|
@ -72,7 +72,6 @@ static gdbarch_frame_saved_pc_ftype alpha_frame_saved_pc;
|
||||||
static gdbarch_frame_init_saved_regs_ftype alpha_frame_init_saved_regs;
|
static gdbarch_frame_init_saved_regs_ftype alpha_frame_init_saved_regs;
|
||||||
|
|
||||||
static gdbarch_push_arguments_ftype alpha_push_arguments;
|
static gdbarch_push_arguments_ftype alpha_push_arguments;
|
||||||
static gdbarch_push_dummy_frame_ftype alpha_push_dummy_frame;
|
|
||||||
static gdbarch_pop_frame_ftype alpha_pop_frame;
|
static gdbarch_pop_frame_ftype alpha_pop_frame;
|
||||||
static gdbarch_fix_call_dummy_ftype alpha_fix_call_dummy;
|
static gdbarch_fix_call_dummy_ftype alpha_fix_call_dummy;
|
||||||
static gdbarch_init_extra_frame_info_ftype alpha_init_extra_frame_info;
|
static gdbarch_init_extra_frame_info_ftype alpha_init_extra_frame_info;
|
||||||
|
@ -1883,7 +1882,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, alpha_push_dummy_frame);
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, alpha_push_dummy_frame);
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, alpha_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, alpha_fix_call_dummy);
|
||||||
set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
|
set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_noop);
|
||||||
set_gdbarch_deprecated_init_frame_pc_first (gdbarch, alpha_init_frame_pc_first);
|
set_gdbarch_deprecated_init_frame_pc_first (gdbarch, alpha_init_frame_pc_first);
|
||||||
|
|
|
@ -2915,7 +2915,6 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_frame_num_args (gdbarch, arm_frame_num_args);
|
set_gdbarch_frame_num_args (gdbarch, arm_frame_num_args);
|
||||||
set_gdbarch_frame_args_skip (gdbarch, 0);
|
set_gdbarch_frame_args_skip (gdbarch, 0);
|
||||||
set_gdbarch_frame_init_saved_regs (gdbarch, arm_frame_init_saved_regs);
|
set_gdbarch_frame_init_saved_regs (gdbarch, arm_frame_init_saved_regs);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_pop_frame (gdbarch, arm_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, arm_pop_frame);
|
||||||
|
|
||||||
/* Address manipulation. */
|
/* Address manipulation. */
|
||||||
|
|
|
@ -1181,7 +1181,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_address_to_pointer (gdbarch, avr_address_to_pointer);
|
set_gdbarch_address_to_pointer (gdbarch, avr_address_to_pointer);
|
||||||
set_gdbarch_pointer_to_address (gdbarch, avr_pointer_to_address);
|
set_gdbarch_pointer_to_address (gdbarch, avr_pointer_to_address);
|
||||||
set_gdbarch_push_arguments (gdbarch, avr_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, avr_push_arguments);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, avr_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, avr_push_return_address);
|
||||||
set_gdbarch_pop_frame (gdbarch, avr_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, avr_pop_frame);
|
||||||
|
|
||||||
|
|
|
@ -453,11 +453,11 @@ extern void hppa_frame_find_saved_regs (struct frame_info *,
|
||||||
/* Push an empty stack frame, to record the current PC, etc. */
|
/* Push an empty stack frame, to record the current PC, etc. */
|
||||||
|
|
||||||
/* FIXME: brobecker 2002-12-26. This macro definition takes advantage
|
/* FIXME: brobecker 2002-12-26. This macro definition takes advantage
|
||||||
of the fact that PUSH_DUMMY_FRAME is called within a function where
|
of the fact that DEPRECATED_PUSH_DUMMY_FRAME is called within a
|
||||||
a variable inf_status of type struct inferior_status * is defined.
|
function where a variable inf_status of type struct inferior_status
|
||||||
Ugh! Until this is fixed, we will not be able to move to multiarch
|
* is defined. Ugh! Until this is fixed, we will not be able to
|
||||||
partial. */
|
move to multiarch partial. */
|
||||||
#define PUSH_DUMMY_FRAME hppa_push_dummy_frame (inf_status)
|
#define DEPRECATED_PUSH_DUMMY_FRAME hppa_push_dummy_frame (inf_status)
|
||||||
extern void hppa_push_dummy_frame (struct inferior_status *);
|
extern void hppa_push_dummy_frame (struct inferior_status *);
|
||||||
|
|
||||||
/* Discard from the stack the innermost frame,
|
/* Discard from the stack the innermost frame,
|
||||||
|
|
|
@ -582,18 +582,18 @@ extern CORE_ADDR init_frame_pc_noop (int fromleaf, struct frame_info *prev);
|
||||||
* I understand everything in this picture except what the space
|
* I understand everything in this picture except what the space
|
||||||
* between fp - 0xe0 and fp - 0x140 is used for. Oh, and I don't
|
* between fp - 0xe0 and fp - 0x140 is used for. Oh, and I don't
|
||||||
* understand why there's a large chunk of CALL_DUMMY that never gets
|
* understand why there's a large chunk of CALL_DUMMY that never gets
|
||||||
* executed (its function is superceeded by PUSH_DUMMY_FRAME; they
|
* executed (its function is superceeded by
|
||||||
* are designed to do the same thing).
|
* DEPRECATED_PUSH_DUMMY_FRAME; they are designed to do the same
|
||||||
|
* thing).
|
||||||
*
|
*
|
||||||
* PUSH_DUMMY_FRAME saves the registers above sp' and pushes the
|
* DEPRECATED_PUSH_DUMMY_FRAME saves the registers above sp' and
|
||||||
* register file stack down one.
|
* pushes the * register file stack down one.
|
||||||
*
|
*
|
||||||
* call_function then writes CALL_DUMMY, pushes the args onto the
|
* call_function then writes CALL_DUMMY, pushes the args onto the
|
||||||
* stack, and adjusts the stack pointer.
|
* stack, and adjusts the stack pointer.
|
||||||
*
|
*
|
||||||
* run_stack_dummy then starts execution (in the middle of
|
* run_stack_dummy then starts execution (in the middle of
|
||||||
* CALL_DUMMY, as directed by call_function).
|
* CALL_DUMMY, as directed by call_function). */
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CALL_DUMMY
|
#ifndef CALL_DUMMY
|
||||||
/* This sequence of words is the instructions
|
/* This sequence of words is the instructions
|
||||||
|
@ -681,7 +681,7 @@ void sparc_fix_call_dummy (char *dummy, CORE_ADDR pc, CORE_ADDR fun,
|
||||||
|
|
||||||
/* Push an empty stack frame, to record the current PC, etc. */
|
/* Push an empty stack frame, to record the current PC, etc. */
|
||||||
|
|
||||||
#define PUSH_DUMMY_FRAME sparc_push_dummy_frame ()
|
#define DEPRECATED_PUSH_DUMMY_FRAME sparc_push_dummy_frame ()
|
||||||
#define POP_FRAME sparc_pop_frame ()
|
#define POP_FRAME sparc_pop_frame ()
|
||||||
|
|
||||||
void sparc_push_dummy_frame (void);
|
void sparc_push_dummy_frame (void);
|
||||||
|
|
|
@ -4283,7 +4283,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
/* No register requires conversion from raw format to virtual format. */
|
/* No register requires conversion from raw format to virtual format. */
|
||||||
set_gdbarch_register_convertible (gdbarch, generic_register_convertible_not);
|
set_gdbarch_register_convertible (gdbarch, generic_register_convertible_not);
|
||||||
|
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, cris_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, cris_push_return_address);
|
||||||
set_gdbarch_pop_frame (gdbarch, cris_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, cris_pop_frame);
|
||||||
|
|
||||||
|
|
|
@ -1697,7 +1697,6 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
|
|
||||||
set_gdbarch_extract_return_value (gdbarch, d10v_extract_return_value);
|
set_gdbarch_extract_return_value (gdbarch, d10v_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, d10v_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, d10v_push_arguments);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, d10v_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, d10v_push_return_address);
|
||||||
|
|
||||||
set_gdbarch_store_struct_return (gdbarch, d10v_store_struct_return);
|
set_gdbarch_store_struct_return (gdbarch, d10v_store_struct_return);
|
||||||
|
|
|
@ -1119,7 +1119,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||||
|
|
||||||
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
||||||
|
|
|
@ -213,7 +213,7 @@ struct gdbarch
|
||||||
gdbarch_integer_to_address_ftype *integer_to_address;
|
gdbarch_integer_to_address_ftype *integer_to_address;
|
||||||
gdbarch_return_value_on_stack_ftype *return_value_on_stack;
|
gdbarch_return_value_on_stack_ftype *return_value_on_stack;
|
||||||
gdbarch_push_arguments_ftype *push_arguments;
|
gdbarch_push_arguments_ftype *push_arguments;
|
||||||
gdbarch_push_dummy_frame_ftype *push_dummy_frame;
|
gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame;
|
||||||
gdbarch_push_return_address_ftype *push_return_address;
|
gdbarch_push_return_address_ftype *push_return_address;
|
||||||
gdbarch_pop_frame_ftype *pop_frame;
|
gdbarch_pop_frame_ftype *pop_frame;
|
||||||
gdbarch_store_struct_return_ftype *store_struct_return;
|
gdbarch_store_struct_return_ftype *store_struct_return;
|
||||||
|
@ -724,9 +724,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
|
||||||
/* Skip verify of integer_to_address, has predicate */
|
/* Skip verify of integer_to_address, has predicate */
|
||||||
/* Skip verify of return_value_on_stack, invalid_p == 0 */
|
/* Skip verify of return_value_on_stack, invalid_p == 0 */
|
||||||
/* Skip verify of push_arguments, invalid_p == 0 */
|
/* Skip verify of push_arguments, invalid_p == 0 */
|
||||||
if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
|
/* Skip verify of deprecated_push_dummy_frame, has predicate */
|
||||||
&& (gdbarch->push_dummy_frame == 0))
|
|
||||||
fprintf_unfiltered (log, "\n\tpush_dummy_frame");
|
|
||||||
/* Skip verify of push_return_address, has predicate */
|
/* Skip verify of push_return_address, has predicate */
|
||||||
/* Skip verify of pop_frame, has predicate */
|
/* Skip verify of pop_frame, has predicate */
|
||||||
if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
|
if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
|
||||||
|
@ -1231,6 +1229,29 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
|
||||||
(long) current_gdbarch->deprecated_pc_in_call_dummy
|
(long) current_gdbarch->deprecated_pc_in_call_dummy
|
||||||
/*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
|
/*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DEPRECATED_PUSH_DUMMY_FRAME_P
|
||||||
|
fprintf_unfiltered (file,
|
||||||
|
"gdbarch_dump: %s # %s\n",
|
||||||
|
"DEPRECATED_PUSH_DUMMY_FRAME_P()",
|
||||||
|
XSTRING (DEPRECATED_PUSH_DUMMY_FRAME_P ()));
|
||||||
|
fprintf_unfiltered (file,
|
||||||
|
"gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME_P() = %d\n",
|
||||||
|
DEPRECATED_PUSH_DUMMY_FRAME_P ());
|
||||||
|
#endif
|
||||||
|
#ifdef DEPRECATED_PUSH_DUMMY_FRAME
|
||||||
|
#if GDB_MULTI_ARCH
|
||||||
|
/* Macro might contain `[{}]' when not multi-arch */
|
||||||
|
fprintf_unfiltered (file,
|
||||||
|
"gdbarch_dump: %s # %s\n",
|
||||||
|
"DEPRECATED_PUSH_DUMMY_FRAME(-)",
|
||||||
|
XSTRING (DEPRECATED_PUSH_DUMMY_FRAME (-)));
|
||||||
|
#endif
|
||||||
|
if (GDB_MULTI_ARCH)
|
||||||
|
fprintf_unfiltered (file,
|
||||||
|
"gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME = <0x%08lx>\n",
|
||||||
|
(long) current_gdbarch->deprecated_push_dummy_frame
|
||||||
|
/*DEPRECATED_PUSH_DUMMY_FRAME ()*/);
|
||||||
|
#endif
|
||||||
#ifdef DEPRECATED_STORE_RETURN_VALUE
|
#ifdef DEPRECATED_STORE_RETURN_VALUE
|
||||||
#if GDB_MULTI_ARCH
|
#if GDB_MULTI_ARCH
|
||||||
/* Macro might contain `[{}]' when not multi-arch */
|
/* Macro might contain `[{}]' when not multi-arch */
|
||||||
|
@ -1857,20 +1878,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
|
||||||
(long) current_gdbarch->push_arguments
|
(long) current_gdbarch->push_arguments
|
||||||
/*PUSH_ARGUMENTS ()*/);
|
/*PUSH_ARGUMENTS ()*/);
|
||||||
#endif
|
#endif
|
||||||
#ifdef PUSH_DUMMY_FRAME
|
|
||||||
#if GDB_MULTI_ARCH
|
|
||||||
/* Macro might contain `[{}]' when not multi-arch */
|
|
||||||
fprintf_unfiltered (file,
|
|
||||||
"gdbarch_dump: %s # %s\n",
|
|
||||||
"PUSH_DUMMY_FRAME(-)",
|
|
||||||
XSTRING (PUSH_DUMMY_FRAME (-)));
|
|
||||||
#endif
|
|
||||||
if (GDB_MULTI_ARCH)
|
|
||||||
fprintf_unfiltered (file,
|
|
||||||
"gdbarch_dump: PUSH_DUMMY_FRAME = <0x%08lx>\n",
|
|
||||||
(long) current_gdbarch->push_dummy_frame
|
|
||||||
/*PUSH_DUMMY_FRAME ()*/);
|
|
||||||
#endif
|
|
||||||
#ifdef PUSH_RETURN_ADDRESS_P
|
#ifdef PUSH_RETURN_ADDRESS_P
|
||||||
fprintf_unfiltered (file,
|
fprintf_unfiltered (file,
|
||||||
"gdbarch_dump: %s # %s\n",
|
"gdbarch_dump: %s # %s\n",
|
||||||
|
@ -4154,23 +4161,30 @@ set_gdbarch_push_arguments (struct gdbarch *gdbarch,
|
||||||
gdbarch->push_arguments = push_arguments;
|
gdbarch->push_arguments = push_arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
gdbarch_push_dummy_frame (struct gdbarch *gdbarch)
|
gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch)
|
||||||
{
|
{
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
if (gdbarch->push_dummy_frame == 0)
|
return gdbarch->deprecated_push_dummy_frame != 0;
|
||||||
internal_error (__FILE__, __LINE__,
|
|
||||||
"gdbarch: gdbarch_push_dummy_frame invalid");
|
|
||||||
if (gdbarch_debug >= 2)
|
|
||||||
fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_frame called\n");
|
|
||||||
gdbarch->push_dummy_frame ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_gdbarch_push_dummy_frame (struct gdbarch *gdbarch,
|
gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch)
|
||||||
gdbarch_push_dummy_frame_ftype push_dummy_frame)
|
|
||||||
{
|
{
|
||||||
gdbarch->push_dummy_frame = push_dummy_frame;
|
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
|
int
|
||||||
|
|
|
@ -1526,15 +1526,41 @@ extern void set_gdbarch_push_arguments (struct gdbarch *gdbarch, gdbarch_push_ar
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef void (gdbarch_push_dummy_frame_ftype) (void);
|
#if defined (DEPRECATED_PUSH_DUMMY_FRAME)
|
||||||
extern void gdbarch_push_dummy_frame (struct gdbarch *gdbarch);
|
/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_DUMMY_FRAME */
|
||||||
extern void set_gdbarch_push_dummy_frame (struct gdbarch *gdbarch, gdbarch_push_dummy_frame_ftype *push_dummy_frame);
|
#if !defined (DEPRECATED_PUSH_DUMMY_FRAME_P)
|
||||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PUSH_DUMMY_FRAME)
|
#define DEPRECATED_PUSH_DUMMY_FRAME_P() (1)
|
||||||
#error "Non multi-arch definition of PUSH_DUMMY_FRAME"
|
#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)
|
||||||
|
#define DEPRECATED_PUSH_DUMMY_FRAME (gdbarch_deprecated_push_dummy_frame (current_gdbarch))
|
||||||
|
#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
|
#endif
|
||||||
#if GDB_MULTI_ARCH
|
#if GDB_MULTI_ARCH
|
||||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (PUSH_DUMMY_FRAME)
|
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_DUMMY_FRAME)
|
||||||
#define PUSH_DUMMY_FRAME (gdbarch_push_dummy_frame (current_gdbarch))
|
#define DEPRECATED_PUSH_DUMMY_FRAME (gdbarch_deprecated_push_dummy_frame (current_gdbarch))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -536,7 +536,7 @@ F:2:INTEGER_TO_ADDRESS:CORE_ADDR:integer_to_address:struct type *type, void *buf
|
||||||
#
|
#
|
||||||
f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0
|
f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0
|
||||||
f:2:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr:::default_push_arguments::0
|
f:2:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr:::default_push_arguments::0
|
||||||
f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-:::0
|
F:2:DEPRECATED_PUSH_DUMMY_FRAME:void:deprecated_push_dummy_frame:void:-:::0
|
||||||
F:2:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0
|
F:2:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0
|
||||||
F:2:POP_FRAME:void:pop_frame:void:-:::0
|
F:2:POP_FRAME:void:pop_frame:void:-:::0
|
||||||
#
|
#
|
||||||
|
|
|
@ -1148,7 +1148,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
* Call Dummies
|
* Call Dummies
|
||||||
*
|
*
|
||||||
* These values and methods are used when gdb calls a target function. */
|
* These values and methods are used when gdb calls a target function. */
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, h8300_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, h8300_push_return_address);
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, h8300_extract_return_value);
|
set_gdbarch_deprecated_extract_return_value (gdbarch, h8300_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, h8300_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, h8300_push_arguments);
|
||||||
|
|
|
@ -5016,7 +5016,7 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_frame_locals_address (gdbarch, hppa_frame_locals_address);
|
set_gdbarch_frame_locals_address (gdbarch, hppa_frame_locals_address);
|
||||||
set_gdbarch_frame_num_args (gdbarch, hppa_frame_num_args);
|
set_gdbarch_frame_num_args (gdbarch, hppa_frame_num_args);
|
||||||
set_gdbarch_frame_args_skip (gdbarch, 0);
|
set_gdbarch_frame_args_skip (gdbarch, 0);
|
||||||
/* set_gdbarch_push_dummy_frame (gdbarch, hppa_push_dummy_frame); */
|
/* set_gdbarch_deprecated_push_dummy_frame (gdbarch, hppa_push_dummy_frame); */
|
||||||
set_gdbarch_pop_frame (gdbarch, hppa_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, hppa_pop_frame);
|
||||||
set_gdbarch_call_dummy_length (gdbarch, INSTRUCTION_SIZE * 28);
|
set_gdbarch_call_dummy_length (gdbarch, INSTRUCTION_SIZE * 28);
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
|
|
|
@ -1590,7 +1590,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
|
|
||||||
set_gdbarch_extract_return_value (gdbarch, i386_extract_return_value);
|
set_gdbarch_extract_return_value (gdbarch, i386_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, i386_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, i386_push_arguments);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, i386_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, i386_push_return_address);
|
||||||
set_gdbarch_pop_frame (gdbarch, i386_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, i386_pop_frame);
|
||||||
set_gdbarch_store_struct_return (gdbarch, i386_store_struct_return);
|
set_gdbarch_store_struct_return (gdbarch, i386_store_struct_return);
|
||||||
|
|
|
@ -2252,7 +2252,6 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_breakpoint_offset (gdbarch, 0);
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||||
|
|
||||||
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
||||||
|
|
|
@ -1385,7 +1385,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, m68hc11_extract_return_value);
|
set_gdbarch_deprecated_extract_return_value (gdbarch, m68hc11_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, m68hc11_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, m68hc11_push_arguments);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, m68hc11_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, m68hc11_push_return_address);
|
||||||
set_gdbarch_return_value_on_stack (gdbarch, m68hc11_return_value_on_stack);
|
set_gdbarch_return_value_on_stack (gdbarch, m68hc11_return_value_on_stack);
|
||||||
|
|
||||||
|
|
|
@ -1050,7 +1050,7 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (call_dummy_words));
|
set_gdbarch_sizeof_call_dummy_words (gdbarch, sizeof (call_dummy_words));
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, m68k_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, m68k_fix_call_dummy);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, m68k_push_dummy_frame);
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, m68k_push_dummy_frame);
|
||||||
set_gdbarch_pop_frame (gdbarch, m68k_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, m68k_pop_frame);
|
||||||
|
|
||||||
return gdbarch;
|
return gdbarch;
|
||||||
|
|
|
@ -1131,7 +1131,6 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
set_gdbarch_decr_pc_after_break (gdbarch, 0);
|
||||||
set_gdbarch_breakpoint_from_pc (gdbarch, mcore_breakpoint_from_pc);
|
set_gdbarch_breakpoint_from_pc (gdbarch, mcore_breakpoint_from_pc);
|
||||||
set_gdbarch_push_return_address (gdbarch, mcore_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, mcore_push_return_address);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_arguments (gdbarch, mcore_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, mcore_push_arguments);
|
||||||
set_gdbarch_call_dummy_length (gdbarch, 0);
|
set_gdbarch_call_dummy_length (gdbarch, 0);
|
||||||
|
|
||||||
|
|
|
@ -5991,7 +5991,6 @@ mips_gdbarch_init (struct gdbarch_info info,
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_call_dummy_address (gdbarch, mips_call_dummy_address);
|
set_gdbarch_call_dummy_address (gdbarch, mips_call_dummy_address);
|
||||||
set_gdbarch_push_return_address (gdbarch, mips_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, mips_push_return_address);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_pop_frame (gdbarch, mips_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, mips_pop_frame);
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
||||||
|
|
|
@ -1197,7 +1197,6 @@ mn10300_gdbarch_init (struct gdbarch_info info,
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_arguments (gdbarch, mn10300_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, mn10300_push_arguments);
|
||||||
set_gdbarch_reg_struct_has_addr (gdbarch, mn10300_reg_struct_has_addr);
|
set_gdbarch_reg_struct_has_addr (gdbarch, mn10300_reg_struct_has_addr);
|
||||||
set_gdbarch_push_return_address (gdbarch, mn10300_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, mn10300_push_return_address);
|
||||||
|
|
|
@ -592,7 +592,7 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
ns32k_extract_struct_value_address);
|
ns32k_extract_struct_value_address);
|
||||||
|
|
||||||
/* Call dummy info */
|
/* Call dummy info */
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, ns32k_push_dummy_frame);
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, ns32k_push_dummy_frame);
|
||||||
set_gdbarch_pop_frame (gdbarch, ns32k_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, ns32k_pop_frame);
|
||||||
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
||||||
set_gdbarch_call_dummy_p (gdbarch, 1);
|
set_gdbarch_call_dummy_p (gdbarch, 1);
|
||||||
|
|
|
@ -2895,7 +2895,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
|
||||||
set_gdbarch_frame_align (gdbarch, rs6000_frame_align);
|
set_gdbarch_frame_align (gdbarch, rs6000_frame_align);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
|
set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
|
||||||
set_gdbarch_push_return_address (gdbarch, ppc_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, ppc_push_return_address);
|
||||||
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
|
||||||
|
|
|
@ -1866,7 +1866,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
|
set_gdbarch_call_dummy_address (gdbarch, entry_point_address);
|
||||||
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
set_gdbarch_call_dummy_start_offset (gdbarch, 0);
|
||||||
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_arguments (gdbarch, s390_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, s390_push_arguments);
|
||||||
set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
|
set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
|
||||||
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
||||||
|
|
|
@ -4664,7 +4664,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||||
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
|
||||||
|
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, sh_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, sh_push_return_address);
|
||||||
|
|
||||||
set_gdbarch_deprecated_store_return_value (gdbarch, sh_store_return_value);
|
set_gdbarch_deprecated_store_return_value (gdbarch, sh_store_return_value);
|
||||||
|
|
|
@ -3160,7 +3160,7 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_max_register_virtual_size (gdbarch, 8);
|
set_gdbarch_max_register_virtual_size (gdbarch, 8);
|
||||||
set_gdbarch_pop_frame (gdbarch, sparc_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, sparc_pop_frame);
|
||||||
set_gdbarch_push_return_address (gdbarch, sparc_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, sparc_push_return_address);
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, sparc_push_dummy_frame);
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, sparc_push_dummy_frame);
|
||||||
set_gdbarch_read_pc (gdbarch, generic_target_read_pc);
|
set_gdbarch_read_pc (gdbarch, generic_target_read_pc);
|
||||||
set_gdbarch_register_convert_to_raw (gdbarch, sparc_convert_to_raw);
|
set_gdbarch_register_convert_to_raw (gdbarch, sparc_convert_to_raw);
|
||||||
set_gdbarch_register_convert_to_virtual (gdbarch,
|
set_gdbarch_register_convert_to_virtual (gdbarch,
|
||||||
|
|
|
@ -1268,7 +1268,6 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
* Call Dummies
|
* Call Dummies
|
||||||
*
|
*
|
||||||
* These values and methods are used when gdb calls a target function. */
|
* These values and methods are used when gdb calls a target function. */
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, v850_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, v850_push_return_address);
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, v850_extract_return_value);
|
set_gdbarch_deprecated_extract_return_value (gdbarch, v850_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, v850_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, v850_push_arguments);
|
||||||
|
|
32
gdb/valops.c
32
gdb/valops.c
|
@ -1300,10 +1300,34 @@ hand_function_call (struct value *function, int nargs, struct value **args)
|
||||||
inf_status = save_inferior_status (1);
|
inf_status = save_inferior_status (1);
|
||||||
inf_status_cleanup = make_cleanup_restore_inferior_status (inf_status);
|
inf_status_cleanup = make_cleanup_restore_inferior_status (inf_status);
|
||||||
|
|
||||||
/* PUSH_DUMMY_FRAME is responsible for saving the inferior registers
|
if (DEPRECATED_PUSH_DUMMY_FRAME_P ())
|
||||||
(and POP_FRAME for restoring them). (At least on most machines)
|
{
|
||||||
they are saved on the stack in the inferior. */
|
/* DEPRECATED_PUSH_DUMMY_FRAME is responsible for saving the
|
||||||
PUSH_DUMMY_FRAME;
|
inferior registers (and POP_FRAME for restoring them). (At
|
||||||
|
least on most machines) they are saved on the stack in the
|
||||||
|
inferior. */
|
||||||
|
DEPRECATED_PUSH_DUMMY_FRAME;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* FIXME: cagney/2003-02-26: Step zero of this little tinker is
|
||||||
|
to extract the generic dummy frame code from the architecture
|
||||||
|
vector. Hence this direct call.
|
||||||
|
|
||||||
|
A follow-on change is to modify this interface so that it takes
|
||||||
|
thread OR frame OR tpid as a parameter, and returns a dummy
|
||||||
|
frame handle. The handle can then be used further down as a
|
||||||
|
parameter SAVE_DUMMY_FRAME_TOS. Hmm, thinking about it, since
|
||||||
|
everything is ment to be using generic dummy frames, why not
|
||||||
|
even use some of the dummy frame code to here - do a regcache
|
||||||
|
dup and then pass the duped regcache, along with all the other
|
||||||
|
stuff, at one single point.
|
||||||
|
|
||||||
|
In fact, you can even save the structure's return address in the
|
||||||
|
dummy frame and fix one of those nasty lost struct return edge
|
||||||
|
conditions. */
|
||||||
|
generic_push_dummy_frame ();
|
||||||
|
}
|
||||||
|
|
||||||
old_sp = read_sp ();
|
old_sp = read_sp ();
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ static gdbarch_deprecated_extract_return_value_ftype vax_extract_return_value;
|
||||||
static gdbarch_deprecated_extract_struct_value_address_ftype
|
static gdbarch_deprecated_extract_struct_value_address_ftype
|
||||||
vax_extract_struct_value_address;
|
vax_extract_struct_value_address;
|
||||||
|
|
||||||
static gdbarch_push_dummy_frame_ftype vax_push_dummy_frame;
|
static gdbarch_deprecated_push_dummy_frame_ftype vax_push_dummy_frame;
|
||||||
static gdbarch_pop_frame_ftype vax_pop_frame;
|
static gdbarch_pop_frame_ftype vax_pop_frame;
|
||||||
static gdbarch_fix_call_dummy_ftype vax_fix_call_dummy;
|
static gdbarch_fix_call_dummy_ftype vax_fix_call_dummy;
|
||||||
|
|
||||||
|
@ -669,7 +669,7 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_deprecated_extract_struct_value_address (gdbarch, vax_extract_struct_value_address);
|
set_gdbarch_deprecated_extract_struct_value_address (gdbarch, vax_extract_struct_value_address);
|
||||||
|
|
||||||
/* Call dummy info */
|
/* Call dummy info */
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, vax_push_dummy_frame);
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, vax_push_dummy_frame);
|
||||||
set_gdbarch_pop_frame (gdbarch, vax_pop_frame);
|
set_gdbarch_pop_frame (gdbarch, vax_pop_frame);
|
||||||
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
||||||
set_gdbarch_call_dummy_p (gdbarch, 1);
|
set_gdbarch_call_dummy_p (gdbarch, 1);
|
||||||
|
|
|
@ -1086,7 +1086,6 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
* Call Dummies
|
* Call Dummies
|
||||||
*
|
*
|
||||||
* These values and methods are used when gdb calls a target function. */
|
* These values and methods are used when gdb calls a target function. */
|
||||||
set_gdbarch_push_dummy_frame (gdbarch, generic_push_dummy_frame);
|
|
||||||
set_gdbarch_push_return_address (gdbarch, xstormy16_push_return_address);
|
set_gdbarch_push_return_address (gdbarch, xstormy16_push_return_address);
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, xstormy16_extract_return_value);
|
set_gdbarch_deprecated_extract_return_value (gdbarch, xstormy16_extract_return_value);
|
||||||
set_gdbarch_push_arguments (gdbarch, xstormy16_push_arguments);
|
set_gdbarch_push_arguments (gdbarch, xstormy16_push_arguments);
|
||||||
|
|
Loading…
Reference in a new issue