This is the mail archive of the
mailing list for the GCC project.
Re: Fixes for powerpc-linux param passing
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: 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>
- Cc: geoffk at geoffk dot org
- Date: Sat, 8 May 2004 09:59:15 -0400
- Subject: Re: Fixes for powerpc-linux param passing
- References: <20040508133635.GA9114@bubble.modra.org>
> 5) Passing vectors when -maltivec and -mabi=no-altivec was broken for
> reasons detailed in http://gcc.gnu.org/ml/gcc/2004-04/msg01316.html
> Vectors need to be aligned. Also, -maltivec shouldn't change the
> function passing mechanism, which means both
> "-mabi=no-altivec -mno-altivec" and "-mabi=no-altivec -maltivec" need
> to change. In this patch, I've chosen to pass altivec vectors by
> reference. If passing by value, alignment constraints allow only one
> vector to be passed in regs, in r5,r6,r7,r8.
> 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.
Geoff, David, do you agree?