ppc eabi float arguments

Bernhard Schommer bernhardschommer@gmail.com
Tue Sep 22 18:13:00 GMT 2015


Am 22.09.2015 um 19:43 schrieb David Edelsohn:
> On Tue, Sep 22, 2015 at 1:39 PM, Bernhard Schommer
> <bernhardschommer@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

Hi,

I'm referencing to the PPC SVR 4 Abi document,

-Bernhard



More information about the Gcc mailing list