Boolean Operators Slighted in C (Really arguments in registers)

George Robbins grr at cbmvax.cbm.UUCP
Mon May 12 11:26:30 AEST 1986


In article <357 at pyramid.UUCP> wendyt at pyramid.UUCP (Wendy Thrash) writes:
[...]
>I don't want to quote too much of the original article -- it was rather long.
>The thrust of it was that passing parameters in registers doesn't make things
>run faster.  This does not fit with my experience.  When we implemented
>parameter passing in registers at Zilog, it was a big win.

*WAS* a big win - meaning maybe it looked good on benchmarks...

[...]
>I will admit that this parameter passing caused difficulties.  In particular,
>varargs code was messy, and debuggers more difficult to implement.  Was it
>worth it?  I believe so.  Our emphasis was on speed, and that we had.

1) pdp-11 style varargs was broken - no way from C to get a those arguments
   that got crammed into registers.

2) Because of the register assignment scheme used, you couldn't even blindly
   pass a list of variable arguments to a routine like printf that did know
   how to deal with them.

3) setjmp/longjmp got broken with respect to restoring register variable
   parameters somewhere along the way.

In the long run, portability seems to have become the more important issue:

Just try porting some of the code in mod.sources and net.sources to the
machine and see how far you can get without having to go into the editor 
and start whacking at source code.  Assume that software developers will
have the same problems porting their wares...

Also, note that Zilog has never delivered its ATT SVID blessed System V port,
and that their next series of machines will contain ATT chips running vanilla
3Bx software...
-- 
George Robbins - now working with,	uucp: {ihnp4|seismo|caip}!cbmvax!grr
but no way officially representing	arpa: cbmvax!grr at seismo.css.GOV
Commodore, Engineering Department	fone: 215-431-9255 (only by moonlite)



More information about the Comp.lang.c mailing list