Re: ABI convention for structs <=8 bytes?

[ Available lists | Index of freebsd-ppc | Month of Jun 2005 | Week of 15 Jun 2005 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Andreas Tobler <toa@pop.agri.ch>
Date
15 Jun 2005 20:57:56
Subject
Re: ABI convention for structs <=8 bytes?
Message-ID
42B0964E.4070703@pop.agri.ch

In reply to

[ Hide this part ]
David O'Brien wrote:
> On Tue, Jun 14, 2005 at 10:28:39PM +0200, Andreas Tobler wrote:
>
>>My situation is the following, there are two implementation of the SYSv4
>>abi for PPC around in gcc. The first one, a draft, passes structs
>>smaller or equal to 8 bytes in memory. The second one, the final one,
>>passes them in registers.
>>So far the fbsd ppc uses the final one. Fine. Except that it is a
>>nightmare to build the resulting struct out of registers with alignment
>>rules...
>>
>>OpenBSD, NetBSD and Linux PPC which rely on SYSV4 pass them in memory.
>>AIX and Darwin do pass them also in memory but they have a different ABI.
>>
>>NetBSD passed it until 1.5 also in registers, according to the comments
>>in gdb ppcnbsd-tdep.c. Now they use the 'broken' convention. I do not
>>know more about why and how long this will be...
>>
>>My simple question is, will the fbsd-ppc ABI convention stay with the
>>final SYSV4 ABI from Sun, or will there be a switch to the broken one?
>
>
> My plans are to stick to the official ELF (we do do the full SVR4 ABI). I
> think sticking to Darwin and OpenSolaris/PPC (in-progress) has merit.
>

So, for the non native English speaker: FreeBSD/PowerPC will use the
final SYSV ABI (SYSTEM V APPLICATION BINARY INTERFACE PowerPC Processor
Supplement) Dated: Part No: 802-3334-10 Revision A, September 1995 ?

I was not speaking about ELF, only the ABI. I do not care about which
one, the broken one would have been a bit more easy. The final one needs
some more coding.

Side note, Darwin uses a different ABI and I just mentioned it as a
sample passing structs in mem and not in $R. OpenSolaris/PPC is
completely new to me and I wonder what it target is.
And my question based on the uncertainty what other *BSD targets are doing.

Thanks for clarification,
Regards,
Andreas


Elapsed time: 0.083 seconds