From owner-freebsd-ppc@FreeBSD.ORG Thu Jun 16 17:13:34 2005 Return-Path: X-Original-To: freebsd-ppc@freebsd.org Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BDA7B16A41F; Thu, 16 Jun 2005 17:13:34 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 519DA43D53; Thu, 16 Jun 2005 17:13:34 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from [10.50.41.231] (Not Verified[216.133.140.1]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Thu, 16 Jun 2005 13:26:58 -0400 From: John Baldwin To: freebsd-ppc@freebsd.org Date: Thu, 16 Jun 2005 13:14:02 -0400 User-Agent: KMail/1.8 References: <42AF3DF7.1080701@pop.agri.ch> <20050615172106.GA1675@dragon.NUXI.org> <200506160914.19625.jhb@FreeBSD.org> In-Reply-To: <200506160914.19625.jhb@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200506161314.03497.jhb@FreeBSD.org> Cc: Subject: Re: ABI convention for structs <=8 bytes? X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jun 2005 17:13:34 -0000 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 <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org