This is the mail archive of the gcc-patches@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]

Re: Patch: use R2 as local reg on Darwin


On Fri, Sep 07, 2001 at 09:54:42PM -0400, David Edelsohn wrote:
> >>>>> Stan Shebs writes:
> 
> Stan> (It *is* kind of a weird situation, but it's what we've inherited.
> Stan> We would have to move heaven and earth to get Apple to adopt
> Stan> either the SVR4 or AIX ABIs - a dramatic improvement in code
> Stan> quality would be the Archimedean lever that could make it happen,
> Stan> but as of yet no one has produced compelling evidence for major
> Stan> speedups.)
> 
> 	The SVR4 Supplement for 32-bit PowerPC does not utilize the
> PowerPC architecture in an optimal way, so you are unlikely to see any
> speedup there, unless the NeXT ABI is extremely brain-damaged.  The AIX
> ABI is a good match to POWER and pretty good match to PowerPC.  AIX ABI is
> very good for scientific codes.  It's main drawback is some antiquated
> alignment assumptions and excessive stack usage.

Well actually both have their advantages and disadvantages.  I tend to think
the TOC scheme isn't as optimal for 32-bit non-library code as System V.4's
method of constructing the address inline, particularly on 604/750 type CPUs
that have more than 1 integer unit, since it involves a memory access to load
the address instead of 2 integer operations.  The calling sequence for
unprototyped functions involving floating point values can always slow things
down.  The requirement that the 224 words above the stack pointer be valid is
also somewhat unusual and definately burned some embedded folk before the
switch over to System V.4/eabi calling sequences.

-- 
Michael Meissner, Red Hat, Inc.  (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:	  meissner@redhat.com		phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org	fax:   +1 978-692-4482


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