On Tue, Sep 22, 2015 at 1:39 PM, Bernhard Schommer
<bernhardschom...@gmail.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.

Thanks, David

Reply via email to