This is the mail archive of the
mailing list for the GCC project.
Re: ppc eabi float arguments
- From: Gabriel Paubert <paubert at iram dot es>
- To: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, David Edelsohn <dje dot gcc at gmail dot com>, Bernhard Schommer <bernhardschommer at gmail dot com>, Peter Bergner <bergner at vnet dot ibm dot com>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Thu, 24 Sep 2015 01:21:07 +0200
- 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> <20150923230943 dot GA27258 at ibm-tiger dot the-meissners dot org>
On Wed, Sep 23, 2015 at 07:09:43PM -0400, Michael Meissner wrote:
> On Tue, Sep 22, 2015 at 01:43:55PM -0400, David Edelsohn wrote:
> > On Tue, Sep 22, 2015 at 1:39 PM, Bernhard Schommer
> > <email@example.com> 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.
You worked on PPC 10 years before the first Power systems were
Amazing foresight :-)
> 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