From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <9405a701573fdd4782644ebadda77050@coraid.com> To: 9fans@cse.psu.edu Subject: Re: [9fans] Non-stack-based calling conventions From: Brantley Coile Date: Tue, 26 Feb 2008 17:32:45 -0500 In-Reply-To: <47C48BE9.6090605@proweb.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 6383a4e8-ead3-11e9-9d60-3106f5b1d025 > I'm quoting out of context as they were discussing the design of the > Inferno VM but Phil Winterbottom & Rob Pike mention in > http://www.vitanuova.com/inferno/papers/hotchips.html : > > "One might argue that a stack-based processor design would mitigate the > difficulties, but our experience with the implementation of a stack > machine in the AT&T Crisp microprocessor [5] leads us to believe that > stack architectures are inherently slower than register-based machines. > Their design lengthens the critical path by replacing simple registers > with a complex stack cache mechanism." I haven't been following the Non-stack-based calling thread closely, but this comment is not about using the stack in procedure calls. They are talking about stack *machines*. push value push value add pop value The Pacal P-machine, the Lillith microcode and the Java Byte machine all come to mind. Note about calling. Intersting in any case. Ken Thompson seemed to be absent at most Usenix conferences, but at one I saw him line up at the mike after the talk on the BSD packet filter. He asked why they had used a stack machine. The poor fellow, who recognized who was asking the question looked like a deer suddenly lit by the headlights of a Peterbuilt. `It's faster?' `No, it's not!' End of questions.