This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Alignment and split function args
- From: Daniel Jacobowitz <drow at false dot org>
- To: Ian Lance Taylor <ian at wasabisystems dot com>
- Cc: Paul Brook <paul at codesourcery dot com>, gcc-patches at gcc dot gnu dot org
- Date: Fri, 27 Feb 2004 00:30:59 -0500
- Subject: Re: [PATCH] Alignment and split function args
- References: <200402270122.30732.paul@codesourcery.com> <m3d681178b.fsf@gossamer.airs.com>
On Thu, Feb 26, 2004 at 11:23:00PM -0500, Ian Lance Taylor wrote:
> Paul Brook <paul@codesourcery.com> writes:
>
> > I've run into a problem with argument alignment when function arguments are
> > split between registers and memory.
>
> ...
>
> > AFAICS arm(iwmmxt) is the only target currently effected. All other ports
> > either have STACK_BOUNDARY == PREFERRED_STACK_BOUNDARY or do not allow
> > splitting of args between registers and memory.
>
> I spent a little while poking at this problem a couple of weeks ago.
>
> Does your patch fix gcc.c-torture/execute/20030914-1.c for iWMMXt?
I'll throw in my useless two cents:
My verdict when I looked at this was that the documented ABI (I don't
know if the document is publicly available) for this port was simply
flawed - you can't both implement the argument passing as written and
maintain the stack alignment it requires. Being unfamiliar with the
argument passing code, and slightly terrified of it, I left it at that
and ignored this failure.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer