From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10268 invoked by alias); 26 Mar 2003 22:41:42 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 10261 invoked from network); 26 Mar 2003 22:41:42 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 26 Mar 2003 22:41:42 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 9E6F82B23; Wed, 26 Mar 2003 17:41:32 -0500 (EST) Message-ID: <3E822C9C.2030207@redhat.com> Date: Wed, 26 Mar 2003 22:41:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030223 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Eli Zaretskii Cc: gdb-patches@sources.redhat.com Subject: Re: [patch rfc] PUSH_ARGUMENTS() -> push_dummy_call() References: <3E7E977A.5080302@redhat.com> <3405-Mon24Mar2003200357+0200-eliz@elta.co.il> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-03/txt/msg00531.txt.bz2 >> Date: Mon, 24 Mar 2003 00:28:26 -0500 >> From: Andrew Cagney >> >> The attached patch addes the architecture method push_dummy_call() as a >> successor for the deprecated PUSH_ARGUMENTS(). PUSH_ARGUMENTS() is used >> when doing an inferior function call. The new method takes two >> additional parameters: > > > The documentation patch is approved. Thanks! I've checked this in. Andrew > The attached patch addes the architecture method push_dummy_call() as a successor for the deprecated PUSH_ARGUMENTS(). PUSH_ARGUMENTS() is usedn when doing an inferior function call. The new method takes two additional parameters: > > regcache: > An explict destination for all those register stores. > > dummy_addr: > The address of the call dummy (which contains the return breakpoint) allowing the function to set the return address. > > In addition to pushing the arguments, this new method is expected set both the struct return and return addresses, and return the final aligned top-of-stack address. > > By requiring this, much of the convoluted and largely sparc centric logic that sits between the old PUSH_ARGUMENTS() and SAVE_DUMMY_FRAME_TOS() calls can be eliminated. This opening the possability of eliminating the methods: > PUSH_RETURN_ADDRESS() > CALL_DUMMY_STACK_ADJUST > STORE_STRUCT_RETURN > write_sp > (expect more deprecating patches). > > I'll look to commit this in a few days (it could take a bit to digest this one). > > Andrew > > PS: Looking at the comments, this one has been on the cards for ~7 years. > > > > 2003-03-23 Andrew Cagney > > * gdbarch.sh (DEPRECATED_PUSH_ARGUMENTS): Rename PUSH_ARGUMENTS. > (push_dummy_call): New pure multi-arch replacement with gdbarch, > regcache and dummy_addr parameters. > * gdbarch.h, gdbarch.c: Re-generate. > * valops.c (hand_function_call): Use gdbarch_push_dummy_call when > available; assume it will handle stack alignment and return > address issues. Fall back to DEPRECATED_PUSH_ARGUMENTS and > legacy_push_arguments. > (legacy_push_arguments): Rename default_push_arguments. > * value.h (legacy_push_arguments): Rename default_push_arguments. > * i386-tdep.c (i386_push_arguments): Call legacy_push_arguments. > * config/sparc/tm-sparc.h (DEPRECATED_PUSH_ARGUMENTS): Update. > * config/sparc/tm-sp64.h (DEPRECATED_PUSH_ARGUMENTS): Update. > * config/pa/tm-hppa.h (DEPRECATED_PUSH_ARGUMENTS): Update. > * config/i386/tm-symmetry.h: Update. > * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. > * x86-64-tdep.c (x86_64_init_abi): Update. > * v850-tdep.c (v850_gdbarch_init): Update. > * sparc-tdep.c (sparc_gdbarch_init): Update. > * sh-tdep.c (sh_gdbarch_init): Update. > * s390-tdep.c (s390_gdbarch_init): Update. > * rs6000-tdep.c (rs6000_gdbarch_init): Update. > * mn10300-tdep.c (mn10300_gdbarch_init): Update. > * mips-tdep.c (mips_gdbarch_init): Update. > * mcore-tdep.c (mcore_gdbarch_init): Update. > * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. > * ia64-tdep.c (ia64_gdbarch_init): Update. > * i386-tdep.c (i386_gdbarch_init): Update. > * hppa-tdep.c (hppa_gdbarch_init): Update. > * h8300-tdep.c (h8300_gdbarch_init): Update. > * frv-tdep.c (frv_gdbarch_init): Update. > * d10v-tdep.c (d10v_gdbarch_init): Update. > * cris-tdep.c (cris_gdbarch_init): Update. > * avr-tdep.c (avr_gdbarch_init): Update. > * arm-tdep.c (arm_gdbarch_init): Update. > * arm-linux-tdep.c (arm_linux_init_abi): Update. > * alpha-tdep.c (alpha_gdbarch_init): Update. > > Index: doc/ChangeLog > 2003-03-23 Andrew Cagney > > * gdbint.texinfo (Target Architecture Definition): Replace > PUSH_ARGUMENTS with push_dummy_call, add gdbarch, regcache and > dummy_addr parameters.