This is the mail archive of the
mailing list for the GCC project.
Re: Fixes for powerpc-linux param passing
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: Aldy Hernandez <aldyh at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, David Edelsohn <dje at watson dot ibm dot com>,Hartmut Penner <HPENNER at de dot ibm dot com>,Janis Johnson <janis187 at us dot ibm dot com>, geoffk at geoffk dot org
- Date: Sun, 9 May 2004 08:49:50 +0930
- Subject: Re: Fixes for powerpc-linux param passing
- References: <20040508133635.GA9114@bubble.modra.org> <20040508135915.GA24780@redhat.com>
On Sat, May 08, 2004 at 09:59:15AM -0400, Aldy Hernandez wrote:
> > My fix for (5) does mean an ABI change, unfortunately. I'm not sure how
> I don't have a problem with changing the ABI for -mabi=no-altivec.
> There is no library code that is currently depending on it, and it
> isn't documented in any of the altivec or ppc-linux/sysv/whatever
> documents. I say we come up with a sane solution, break it once and
> for all, and try to document this in the ABI standard for PPC32/64.
Note that this patch just fixes the ABI_V4 case. We have exactly the
same problem on every other rs6000 ABI in that -mabi=no-altivec doesn't
align vector params. I'm happy to fix the other ABIs too if everyone
is agrees. Pass vectors by value in gprs for 64-bit, and by reference
for 32-bit? Does that sound reasonable?
On powerpc-linux, there are some other ABI changes just crying out to be
done too. For example, we currently pass _Complex double in gprs.
Perhaps this change needs to be accompanied with a means to generate
code compatible with the current broken ABI.
IBM OzLabs - Linux Technology Centre