This is the mail archive of the
mailing list for the GCC project.
Re: ppc eabi float arguments
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Bernhard Schommer <bernhardschommer at gmail dot com>, Peter Bergner <bergner at vnet dot ibm dot com>, Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Tue, 22 Sep 2015 13:43:55 -0400
- Subject: Re: ppc eabi float arguments
- Authentication-results: sourceware.org; auth=none
- References: <CAG8G+nuVbXWb=meQ5dEWXqkSwPM-Jk-8S=xQYd-==x6QJRBneQ at mail dot gmail dot com>
On Tue, Sep 22, 2015 at 1:39 PM, Bernhard Schommer
> if been working with the windriver Diab c compiler for 32bit ppc for and
> encountered an incompatibly with the eabi version of the gcc 4.83. When
> calling functions with more than 8 float arguments the gcc stores the 9th
> float argument (and so on) as a float where as the diab compiler stores the
> argument as a double using 8 byte.
> I checked the EABI document and it seems to support the way the diab
> compiler passes the arguments:
> "Arguments not otherwise handled above [i.e. not passed in registers]
> are passed in the parameter words of the caller=E2=80=99s stack frame. [...=
> float, long long (where implemented), and double arguments are
> considered to have 8-byte size and alignment, *with float arguments
> converted to double representation*. "
> Does anyone know the reason why the gcc passes the argument as single float?
First, are you certain that you have the final version of the 32 bit
PPC eABI? There were a few versions in circulation.
Mike may remember the history of this.