This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PowerPC long double stdarg breakage


On Wed, Apr 19, 2006 at 10:13:51PM -0400, Andrew Pinski wrote:
> > 
> > This patch fixes a bug in the new ppc long double support.  On
> > powerpc-linux, a long double function arg is not passed split between
> > the last fpr and stack:  If there is only one fpr available, the long
> > double is passed entirely on the stack, and all following fp args are
> > passed on the stack.  rs6000_gimplify_va_arg needs to be taught that
> > all the following fp args are stack based.
> > 
> > I'll apply this as obvious to mainline and 4.1 after performing
> > regression tests.
> > 
> > 	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
> > 	fp regs if the last fp arg doesn't fit in regs.
> 
> Does this also change the Darwin ABI?  (I did not look fully in the
> patch but was just wondering).

No, it only affects ABI_V4.

> Also could you add a note to the changes page for both 4.1 and 4.2
> about this ABI changing patch.

This isn't an ABI changing patch.  The ABI change happened with 4.1
supporting IBM extended long double on 32-bit powerpc-linux.  This
patch merely fixes a bug.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]