FYI, repeating from recent discussions on squeak-dev list:
Over the last 2 weeks I've been playing around with replacing the memory access macros in sqMemoryAccess.h with equivalent Smalltalk slang. Along the way I found and fixed several slang issues that prevented inlining of methods with C declarations. I posted a snapshot of this on squeak-dev in response to a question there, so I'm mentioning here on vm-dev for the record.
I have the memory access methods working now, and with all the slang inlining applied I'm seeing about 20% of the performance of the interpreter using C macros. I don't know if it will be possible or practical to achieve the performance of the CPP macros, but it does seem useful to be able to generate the VM entirely in C without macros as an aid to debugging and possibly profiling
The slang translation bug fixes will be worth capturing on Mantis, and I'll do so within the next couple of weeks.
The thread on squeak-dev, including the change sets, is here: http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-July/129982.html
Dave
vm-dev@lists.squeakfoundation.org