ABI convention for structs <=8 bytes?
Andreas Tobler
toa at pop.agri.ch
Wed Jun 15 20:57:56 GMT 2005
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
More information about the freebsd-ppc
mailing list