From: Ian P. <ian...@in...> - 2004-04-08 02:32:21
|
On 08 Apr 2004, at 04:20, Tim Rowledge wrote: > In message <6F7...@in...> > Ian Piumarta <ian...@in...> wrote: > >> On 08 Apr 2004, at 02:39, Andreas Raab wrote: >> >>> Which reminds of something else we were talking about in the past: >>> Passing >>> primitive arguments as C arguments instead of the Smalltalk stack. >> > That could save time in the primitive code, but what would it cost in > the calling code? Outside of a translator, how would we load up the > registers (and think of the platform differences in which registers and > how many etc)? Why did I say: "the tradeoffs for register architectures are more complex"? > You mean having rcvr as TOS at prim call time? What benefit does that > have ? You don't need to know how many arguments are passed to know where the receiver is. If you want to do anything more interesting that dumb interpretation, chances are you end up having the receiver right where you need it just when you discover it's time to dynamic bind. Makes inlining statically-bound sends, not to mention deleting that useless frame pointer, a whole lot easier. Too lazy to think of any more excuses. (No, nothing special about TOS on x86. The only thing there was R-2-L eval + C ABI args gives you zero-copy callout to prims.) Ian |