[net.lang.c] ZEUS!! Re: var args

mab@bnl.UUCP (Michael A. Bloom) (11/04/83)

        The only time that this wouldn't work is if the arguments were put on
        the stack in the reverse order that they normally are in C.

        			Ken Turkowski
    Unfortunatly, there is at least one compiler out there that does this.
    Printf for this compiler is interesting (and broken) (and sickening).

Then, there is the ZILOG compiler for ZEUS (ZILOG Extended Unix System)
Arguments are passed in REGISTERS until they run out,  at which point
the stack is then used for the remainder of the arguments.  Printf for
this requires knowing what registers the compiler will use in what
order for what argument types, and when it will stop using registers
and start using the stack.  To top this they have two versions  of the
compiler,  one of which generates segmented addresses (32 bits) and
one which generates unsegmented addresses (16 bits).  Int is 16 bits
for both compilers, but sizeof (* anything) is 32 bits on one and
16 on the other.  There are also two different ld's, ld(1) and sld(1).


			Michael Bloom
			..!ucla-vax!sdcrdcf!csun!mab (preferred to above)