This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ppc eabi float arguments


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]