Time: 6 February 2011, 9:43:10 am
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.
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
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.
Fix bug in checkLogIntegrity for an empty log.
Safety in activation printing (for backtraces etc).
Run quitBlock on closing simulator window.
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
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.
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