ARMv6 stack/v3 and stack/spur VMs updated accordingly. 


On Jan 29, 2015, at 17:26, Eliot Miranda <> wrote:

CogVM binaries as per VMMaker.oscog-eem.1029/r3236

Fix stupid, stupid bug in copying vm profile samples between buffers when the
circular buffer index has wrapped.

Fix monumental blunder in jitted store-check code.  The saved registers mask
needs to be the *or* of the value reg and the caller-saved registers, not the

Make the pin primitives Spur-only.

Never inline mapStackPages, for debugging.

Reduce the max num literals in the alternate header format to 15, and steal
the bit for the Sista optimized method flag.

Make postBecomeAction's stack sweep only occur in Spur (fix regression).
Refactor so that the scan is not inlined. Don't assume newMethod is
non-immediate in post-become actions.

Fix stack adjust slip in primitiveSmallFloatTimesTwoPower

Make ensureBehaviorHash: fail for uninitialized
behaviours and hence fix the Behavior basicNew basicNew hang.

Optionalize some api methods the Spur Cogit doesn't use.

Rename and correct ensureSemaphoreForwardedThroughContext: to
ensureSemaphoreUnforwardedThroughContext:, its intended function.

Make shouldRemapObj: filter-out objects already in newSpace
since mapStackPages, via mapInterpreterOops, can visit objects
twice in a scavenge, GC, compact sequence.

Make sure the caller (& saved) context(s) in base frames stack page are
followed post-become in followForwardingPointersInStackZone:.

Fix bad bug introduced in become changes in  VMMaker.oscog-eem.841 through 844.
The class table contains puns, e.g. using Array and WeakArray.  These class
index puns must not mislead the allInstances primitive into concluding that
the class in question is at multiple indices and wrongly purge it.

Fix slip in primitivePin. Also be lenient w.r.t. unpinning married contexts.
Move the check down into StackInterpreter's version.  This allows e.g.
    self allObjectsDo: [:o| o unpin]

Bow to the inevitable and add a manual override for primitive accessor depth.
Use it in at: & at:put:.  If manual override is not used then the automatically
computed depth is too deep because of context access.

Integrate Ryan's newer absent receiver sends, which first apeared in
VMMaker.oscog-eem.919, abandoned because of Glue issues now resolved.  Includes
nice refactoring of absent send argument marshalling into its own routine.

Remove/fix assumption of 32-bit digit length in normalization routines.