Re: Where is it written?

From: Michael Meissner (meissner@spectacle-pond.org)
Date: Fri Nov 10 2000 - 19:27:51 EST


On Fri, Nov 10, 2000 at 07:11:37PM -0500, Albert D. Cahalan wrote:
> Michael Meissner writes:
>
> > It may be out of print by now, but the original reference
> > for the x86 ABI, is the:
> >
> > System V Application Binary Interface
> > Intel386 (tm) Processor Supplement
> >
> > When Cygnus purchased the manual I have, many moons ago,
> > it was published by AT&T, with a copyright date of 1991,
>
> Gee that looks old. Might there be better calling conventions
> for the Pentium 4 or Athlon? Memory latency, vector registers,
> and more direct access to floating-point registers may mean
> we ought to change the calling conventions. One would start
> with the kernel of course, because it stands alone.

Generally with ABIs you don't want to mess with it (otherwise you can't be
guaranteed that a library built by somebody else will be compatible with your
code, without all sorts of bits in the e_flags field). It allows multiple
compilers to be provided that all interoperate (as long as they follow the same
spec).

Don't get me wrong -- in my 25 years of compiler hacking, I've never seen an
ABI that I was completely happy with, including ABI's that I designed myself.
ABIs by their nature are a compromise. That particular ABI was short sighted
in that it wants only 32-bit alignment for doubles, instead of 64-bit alignment
for instance, and also doesn't align the stack to higher alignment boundaries.

-- 
Michael Meissner, Red Hat, Inc.
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Nov 15 2000 - 21:00:18 EST