ABI convention for structs <=8 bytes?

John Baldwin jhb at FreeBSD.org
Thu Jun 16 17:13:34 GMT 2005


On Thursday 16 June 2005 09:14 am, John Baldwin wrote:
> On Wednesday 15 June 2005 01:21 pm, 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.
>
> I don't think you really read his e-mail.  Linux, OpenBSD, NetBSD, Linux,
> AIX _and_ Darwin all use an ABI that passes these structs in memory rather
> than registers.  The first three happen to use a specific draft ABI whereas
> Darwin and AIX use some other ABI that also passes them in memory.  No one
> but FreeBSD uses the "final" ABI that tries to pass them in registers
> except perhaps for the OpenSolaris/PPC that you just mentioned.  It would
> seem that even if Solaris goes the "final" route, we would still be in the
> vast majority for ppc ABIs.

s/majority/minority/

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-ppc mailing list