Subject: Re: Rebuild an X11 server
To: Peter E. Midford <pmidford@students.wisc.edu>
From: Henry B. Hotz <hotz@jpl.nasa.gov>
List: port-mac68k
Date: 01/26/1998 15:18:54
At 3:25 PM -0800 1/24/98, Peter E. Midford wrote:
>>Not a standard one. One of the standard things specified with a CPU is the
>>subroutine calling procedure (*). Most all m68k programming environments,
>>including NetBSD and MacOS, use parameters passed on the stack.
>>
>>Moto & IBM specified for teh PowerPC that the first 8 or so parameters are
>>passed in registers, and that some registers must be preserved by
>>subroutines and others don't have to be.
>>
>>Bill
>>
>>(*) It's really specified as part of an ABI. I've never seen more than one
>>parameter-passing standard per CPU. If you're using assembly language, you
>>can, of course, use registers to your heart's content.
>
>Pardon the digression, but the VAX supported two different parameter passing
>standards, with assembly instructions (CALLS and CALLG) to implement each.  As
>I recall the first passed parameters on the stack, the second specfied a
>pointer
>to a block of memory that contained the parameters.

In days of yore the calling sequence was not standardized and every
language compiler/builder invented his own.  Machine support usually
consisted of some kind of jump-and-save instruction which did nothing for
parameter passing.  As late as OS/360 the PL/I language had a slightly
different standard from the other languages on the machine.

I believe the idea of standardizing the calling sequence was one of the
(very many) innovations of the Multics system.  In any case Multics was one
of the first systems to provide a code generation facility independent of a
the specific compilers.

Signature failed Preliminary Design Review.
Feasibility of a new signature is currently being evaluated.
h.b.hotz@jpl.nasa.gov, or hbhotz@oxy.edu