|
From: Tim R. <ti...@su...> - 2004-04-23 21:49:19
|
Dudes, dudettes, dunces and other interested sophonts - there is a new version of VMMaker that I hope will be suitable for the final 3.7 release. This latest version stores the primitive function addresses in the MCache so that calling a prim within #internalExecuteNewMethod can branch pretty directly instead of a switch statement. It's not so much a performance thing (yet) as a flexibility thing, since we can alter #functionPointerFor:inClass: to specialise the chosen prim to suit the class at some later stage. The not-so-inline method activations still go via the table of prim function addresses for now. I'd be interested to know if anyone can see any reason or way to use the MCache entry in those cases. It's been tested on RISC OS & winXP and appears to be reliable - not to mention 2.2 times faster on RISC OS than the 3.6 VMs. Sadly the winXP results only show about 5% improvement but why would I care about that :-) I still don't have a decent way to upload to cvs so you'll have to use the attached copy of sq.h - or upload it for everyone's convenience - in order to get a good build. The new #define for dispatchFunctionPointer is the only change from thelast version. tim -- Tim Rowledge, ti...@su..., http://sumeru.stanford.edu/tim Strange OpCodes: DSO: Do Something or Other |