Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://www.squeaksource.com/VMMaker/VMMaker-oscog.47.mcz ==================== Summary ==================== Name: VMMaker-oscog.47 Author: eem Time: 6 February 2011, 9:43:10 am UUID: a4053f20-cb87-415d-aad3-3bb29b03724c Ancestors: VMMaker-eem.718, VMMaker-oscog.46 Move the genExternalizePointersForPrimitiveCall and genLoadCStackPointersForPrimCall to the front of compileInterpreterPrimitive so that a) reg args are pushed before any calls, and b) ceCheckProfileTick is run on the C stack. The first fixes the StackToRegisterBasedCogit's crash when profiling. The second is safer than running it on a Smalltalk stack page. Fix simulation of the profling machinery (to debug the above). Fix mapping for backward branches which must of course map to themselves, otherwise the VM can break out of loops prematurely. Bring StackInterpreter generation up to date (less labelling, vmCallback). zero instuctions on recompiling block after numInitialNils mis-estimation. More methods for the in-image facade for compiling quick prims. Both Cogits Fix pc mapping once and for all. Tests allow compiling all methods in current image and testing all mapped bcpcs and mcpcs map and map ack correctly. Fix bad bug with jump fixups that caused some fixups to be missed (error in the index used to define the range of valid fixup adresses). StackToRegisterMappingCogit Fix bug in addBlockStartAt:numArgs:numCopied:span: that caused one block entry to be omitted when some block was recompiled due to initialNil misestimation. As part of pc mapping fixing add an annotateUse flag to sim stack entries so that the eliminated send in a folded constant still gets a pc map entry. CoInterpreter Fix bug in checkLogIntegrity for an empty log. Safety in activation printing (for backtraces etc). SImulator Run quitBlock on closing simulator window. StackToRegisterMappingCogit: Fix bug in repeated block compilation for initial nil handling. Repeated attempts to insert the same block start are filtered out instead of repeating all block inserts (which doesn't work). Fix bad bug in frameless block entry. Don't use initSimStackForFramelessMethod:! Add a target fixup for a conditional jump even if it is a jump on true or false since the simStack must still be valid for merges. Nuke as-yet-unused merge state in CogSSBytecodeFixup. Add a subclass using image facilities to compute numnitialNils correctly to compare against repeated block compilation. CoInterpreter: comment an apparently unsent method to stop me from deleting it. Fix StackToRegisterMappingCogit being confused by initial pushNils in blocks that provide parameters rather than initialize temps by tracking stack depth and recompiling if the depth is wrong at the end of the block. Do this by refactoring compileMethodBody into compileEntireMethod et al. Fix atCache leakage for super sends in machine code by assigning to lkupClass (since commonAt:[put:] use lkupClass to filter-out super sends). Simulator fixes and tidyups. |
Free forum by Nabble | Edit this page |