Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://www.squeaksource.com/VMMaker/VMMaker-oscog.40.mcz
==================== Summary ====================
Name: VMMaker-oscog.40 Author: eem Time: 30 December 2010, 12:37:41 pm UUID: 637db40c-33c6-4263-816e-1b8cc19e3c99 Ancestors: VMMaker-eem.685, VMMaker-oscog.37
New StackToRegisterMappingCogit that produces significantly more efficient and more compact code. Benefits vary widely based on work-load. e.g on 2.66 GHz Core i7 MacBook Pro
SimpleStackBasedCogit: [1 to: 100000000 do: [:i|]] timeToRun 691 StackToRegisterMappingCogit: [1 to: 100000000 do: [:i|]] timeToRun 192 192 - 691 / 6.91 -72%
SimpleStackBasedCogit: 0 tinyBenchmarks '753495217 bytecodes/sec; 64769127 sends/sec' StackToRegisterMappingCogit: 0 tinyBenchmarks '931756141 bytecodes/sec; 128157989 sends/sec' 931756141 - 753495217 / 7534952.17 -24% 128157989 - 64769127 / 647691.27 -98%
SimpleStackBasedCogit: [Compiler recompileAll] timeToRun 47013 (no transcript StackToRegisterMappingCogit: [Compiler recompileAll] timeToRun 43406 (no transcript) 43406 - 47013 / 470.13 -7.67234594686576
Fix bug in pc mapping in blocks. An ^-return in a block has both a pc map entry and a CallRT map entry because of the call to ceNonLocalReturn. Hence the bytecode descriptors need to reflect this. The old code didn't know this and hence pc mapping was wrong for pcs following an ^-return in a block.
Non-threaded callbacks. Implement legacy sendInvokeCallback:Stack:Registers:Jmpbuf: style. Provide a more general new style that avoids 64-bit limitations. VMCallbackContext includes all the necessary state for a callback, so the new arg count can be 1 (and is in interp.h). New sendInvokeCallbackContext will work with either old Alien class>invokeCallback:stack:registers:jmpbuf: entry-point or new Alien class>invokeCallbackContext:.
Other fixes described in the history.
vm-dev@lists.squeakfoundation.org