Newsgroups: comp.arch Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!uupsi!ficc!peter From: peter@ficc.ferranti.com (peter da silva) Subject: Re: Compilers and efficiency Message-ID: <5VWAGK5@xds13.ferranti.com> Organization: Ferranti International Controls Corporation References: <7184@auspex.auspex.com> <12740@pt.cs.cmu.edu> Date: Mon, 22 Apr 91 14:11:22 GMT In article <12740@pt.cs.cmu.edu>, lindsay@gandalf.cs.cmu.edu (Donald Lindsay) writes: > The reason it was easy was because the machine code for a > procedure prologue, contained (get this) a *call* to the runtime > package... The K&R C compiler for the PDP-11 did this, too. And it did returns with a "jmp cret". You want a weird calling convention, try the 1802. A subroutine call is made by changing which register is acting as the PC: all subroutines were coroutines. To get stack calling you set up a pair of call-return subroutines, burned a couple registers as their start address, and called them with SEP 4 and SEP 5. The only machine I know for which Forth (particularly token indirect threaded code) was faster than regular subroutine calls using the Standard Call/Return technique. (I know, you're all tired of me flaming about the 1802. But it was a really CUTE micro. Sort of like a boutique car.) -- Peter da Silva. `-_-' peter@ferranti.com +1 713 274 5180. 'U` "Have you hugged your wolf today?"