This is the mail archive of the
mailing list for the GCC project.
Re: ppc eabi float arguments
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: David Edelsohn <dje dot gcc at gmail dot com>
- Cc: 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>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Wed, 23 Sep 2015 19:09:43 -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> <CAGWvnyk2SfJD5k6iAwYeeogyT_4aYC1SV+2tYrKGYMZKVnrYgA at mail dot gmail dot com>
On Tue, Sep 22, 2015 at 01:43:55PM -0400, David Edelsohn wrote:
> On Tue, Sep 22, 2015 at 1:39 PM, Bernhard Schommer
> <firstname.lastname@example.org> wrote:
> > Hi,
> > 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?
> Hi, Bernhard
> 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.
Well I worked on it around 1980 or so. I don't remember the details (nor do I
have the original manuals I was working from). From this distance, it sure
looks like a bug, but I'm not sure whether it should be fixed or grand-fathered
in (and updating the stdargs.h support, if this is the offical calling
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: email@example.com, phone: +1 (978) 899-4797