This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Stack alignment - take 2
- From: Richard Henderson <rth at redhat dot com>
- To: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Cc: Geoff Keating <geoffk at geoffk dot org>, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Mon, 3 Mar 2003 18:26:57 -0800
- Subject: Re: [PATCH]: Stack alignment - take 2
- References: <jmvfzi1weo.fsf@desire.geoffk.org> <200303011931.h21JVoN1005724@hiauly1.hia.nrc.ca>
On Sat, Mar 01, 2003 at 02:31:50PM -0500, John David Anglin wrote:
> * function.c (STACK_ALIGNMENT_NEEDED): New macro. Default to 1.
> (assign_stack_local_1): Perform overall stack alignment only when
> STACK_ALIGNMENT_NEEDED is non-zero.
> * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
>
> * pa.c (compute_frame_size): Rename fsize to size. Account for
> alignment to a word boundary before general register save block. Only
> account for double-word alignment before floating point register save
> block if one or more are saved. Don't allocate space for %r3 when
> frame pointer is needed.
> (hppa_expand_prologue): Include alignment to word boundary in local
> frame size.
> * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
> (STACK_ALIGNMENT_NEEDED): Define.
Ok.
Seems like this ought to be avoidable by intelligently rearranging
the way things are layed out in the stack frame, but that may not
be an option based on ABI constrints.
r~