This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR 14262 breakage on Darwin
- From: Geoff Keating <geoffk at geoffk dot org>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: gcc-patches at gcc dot gnu dot org, andreast at gcc dot gnu dot org, wilson at specifixinc dot com
- Date: 01 Apr 2004 13:46:40 -0800
- Subject: Re: [PATCH] Fix PR 14262 breakage on Darwin
- References: <200403242300.AAA14452@faui1d.informatik.uni-erlangen.de><20040325141800.GB2559@bubble.modra.org>
Alan Modra <amodra@bigpond.net.au> writes:
> On Thu, Mar 25, 2004 at 12:00:32AM +0100, Ulrich Weigand wrote:
> > unfortunately my patch to fix PR 14262 broke Darwin, as pointed out
> > by Andreas Tobler (in the PR record).
>
> I suspect that libffi for darwin ought to use the stack copy..
>
> > happens on Darwin, where 3-byte structs are supposed to be passed
> > left-aligned on the stack *and* left-aligned in a register, and
> > the callee reads them left-aligned from the stack.
>
> ..because this seems a little weird. I don't think the function call
> machinery in gcc is intended to support args passed both in regs and
> on the stack, at least not without using PARALLELs to describe the
> reg and stack copies separately. See the struct arg_data.pass_on_stack
> comment.
It's possible that this requirement in the rs6000 port predates the use
of PARALLELs to describe it.
--
- Geoffrey Keating <geoffk@geoffk.org>