Re: [patch rfc] TARGET_WRITE_SP -> DEPRECATED_DUMMY_WRITE_SP

Andrew Cagney
2003-03-30T14:59:13Z

I've checked this in.

> The attached patch replaces TARGET_WRITE_SP with DEPRECATED_DUMMY_WRITE_SP. Instead of providing this method, an architecture is expected to update the stack pointer as part of creating the fake call-frame (in push_dummy_call()).
>
> To make DEPRECATED_DUMMY_WRITE_SP optional, all the existing targets (except the d10v) were updated to explicitly set this new method (gdb_mbuild.sh rules m'kay).
>
> In addition, it alters the valops.c logic that decides if/when DEPRECATED_DUMMY_WRITE_SP() should be called:
>
> stored the stack pointer (as part of creating the fake call
> frame), and none of the code following that code adjusts the
> stack-pointer value, the below call is entirely redundant. */
> - if (!gdbarch_push_dummy_call_p (current_gdbarch))
> - TARGET_WRITE_SP (sp);
> + if (DEPRECATED_DUMMY_WRITE_SP_P ())
> + DEPRECATED_DUMMY_WRITE_SP (sp);
>
> if (SAVE_DUMMY_FRAME_TOS_P ())
> SAVE_DUMMY_FRAME_TOS (sp);
>
> By doing this, migrating to push_dummy_call() from push_arguments() is much easier. The SP code can be moved over separate to switching to push_dummy_call().
>
>
> I'll look to commit in a few days,
>
> Andrew
>
>
>
> Index: doc/ChangeLog
> 2003-03-27 Andrew Cagney <cagney@redhat.com>
>
> * gdbint.texinfo (Target Architecture Definition): Remove
> reference to TARGET_WRITE_SP.
>
> 2003-03-28 Andrew Cagney <cagney@redhat.com>
>
> * gdbarch.sh (DEPRECATED_DUMMY_WRITE_SP): Replace TARGET_WRITE_SP.
> * gdbarch.h, gdbarch.c: Regenerate.
> * arm-tdep.c (arm_gdbarch_init): Set deprecated_dummy_write_sp.
> * v850-tdep.c (v850_gdbarch_init): Ditto.
> * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
> * mcore-tdep.c (mcore_gdbarch_init): Ditto.
> * m68k-tdep.c (m68k_gdbarch_init): Ditto.
> * i386-tdep.c (i386_gdbarch_init): Ditto.
> * h8300-tdep.c (h8300_gdbarch_init): Ditto.
> * cris-tdep.c (cris_gdbarch_init): Ditto.
> * vax-tdep.c (vax_gdbarch_init): Ditto.
> * s390-tdep.c (s390_gdbarch_init): Ditto.
> * ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
> * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
> * alpha-tdep.c (alpha_gdbarch_init): Ditto.
> * sparc-tdep.c (sparc_push_dummy_frame, sparc_pop_frame): Update.
> * config/sparc/tm-sp64.h (DEPRECATED_DUMMY_WRITE_SP): Update.
> * config/pa/tm-hppa.h (DEPRECATED_DUMMY_WRITE_SP): Define.
> * sparc-tdep.c (sparc_gdbarch_init): Update.
> * sh-tdep.c (sh_gdbarch_init): Update.
> * rs6000-tdep.c (rs6000_gdbarch_init): Update.
> * mips-tdep.c (mips_gdbarch_init): Update.
> * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
> * ia64-tdep.c (ia64_gdbarch_init): Update.
> * frv-tdep.c (frv_gdbarch_init): Update.
> * avr-tdep.c (avr_gdbarch_init): Update.
> * valops.c (hand_function_call): Replace TARGET_WRITE_SP with
> DEPRECATED_DUMMY_WRITE_SP. Call when the method is available,
> instead of when push_dummy_call is not available.
>