wendyt@pyramid.UUCP (Wendy Thrash) (05/28/86)
The "discussion" so far: >>> Wendy Thrash (that's me) >> George Robbins > Jim Cottrell >>> 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... Yes, including generalized system benchmarks, not just silly little loops. When we made the kernel with the register-argument compiler, things ran faster. >>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. > Why not? And who says varargs has to be written in C? It just may > have to be written in assembly some day. Well, you could pass things to printf fairly blindly, as I recall. Printf itself, though, went through some strange peregrinations to get hold of its arguments. >>3) setjmp/longjmp got broken with respect to restoring register variable >> parameters somewhere along the way. > Probably difficult, but not impossible. Pyramids seem to work. Zilog's setjmp/longjmp did get broken, and were thought to be more or less unfixable, but I can't remember why. They were replaced with routines called setret and longret, which accomplished pretty much the same thing. As for Pyramids, yes, they work just fine. Pyramids, though, have an architecture specifically designed for passing parameters in registers. This is starting to take on the character of religious discussion, so I might as well bow out with a small flame: ------------------------- [Begin Zilog flame] >>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... > Zilog of course has other problems as well. I think the other problems tell the story. Zilog didn't fail to deliver because of passing parameters in registers. About three and a half years ago, the director of systems engineering left. He was followed eventually by the compiler group manager, every staff engineer (a grade above senior engineer at Zilog) in the place, and most of the senior engineers. Moreover, components couldn't deliver chips. I did the compiler support for Zilog's floating point chip over three years ago! ("What chip?" I hear you ask.) I also worked on Z80K support at that time. (Again, "What chip?") -- Wendy Thrash {allegra,cmcl2,decwrl,hplabs,topaz,ut-sally}!pyramid!wendyt Pyramid Technology Corp, Mountain View, CA +1 415 965 7200 ext. 3001