CogVM binaries as per VMMaker.oscog-eem.842/r3058
Spur:
Provide unpinObject: for InterpreterProxy.
Fix initialization of the heap-resident remembered set added by
VMMaker.oscog-eem.827. ��It must be created /after/ old space is initialized.
Fix two become bugs surfaced when adding/removing inst vars to/from Association,
Binding et al. ��First, the class table must be scanned to ensure there are no
forwarders to classes (much cheaper than the full hierarchy walk to follow
method dictionaries etc that was done). ��Second, machine code methods that gain
a new reference through become must get added to the youngReferrers. ��Add a new
become effect flag, OldBecameNew that captures this and respond to it in
CoInterpreter>>postBecomeAction: by adding all methods to youngReferrers so
that on the next scavenge all will be made right.
Fix GC of machine code, which must follow forwarders when doing
markAndTraceLiteral: and again add to youngReferrers if following
gains a new ref. ��Refactoring of markAndTraceLiteral: into
markAndTraceLiteral:in:at: et al required.
Fix assert in addFreeSubTree:.
General:
Support the alternate bytecode set header in all VMs to ease testing of
multiple bytecode sets. ��This means methods with the sign bit set have
no primitive field and a larger num literals field, but no more.
Fix longPrintOop: (actually printOopShortInner:) for
global variable printing in face of new Environments.
Cogit:
Clean up adding to the youngReferrers by providing ensureInYoungReferrers:.
Since there always is room on youngReferrers, nuke roomOnYoungReferrersList,
canLinkToYoungClasses and caller code, simplifying ceSend:super:to:numArgs: etc.
Fix assert in followForwardedLiteralsIn:
General:
Change the scanning for initial nils scheme in the StackToRegisterMappingCogit
to answer the number of push nils in a bytecode, instead of whether the
bytecode is a push nil. ��Refactor genReturnTopFromBlock into genBlockReturn.
These changes accomodate Sista.
Rationalize the length functions, deleting byteLengthOf:, fetchLong32LengthOf:
& fetchWordLengthOf: and providing numBytesOf:, num16BitUnitsOf:,
num32BitUnitsOf:, num64BitUnitsOf: and numBytesOf:.
Provide fetch/storeShort16:ofObject:[withValue:] and
fetch/storeLong64:ofObject:[withValue:].