Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.399.mcz==================== Summary ====================
Name: Cog-eem.399
Author: eem
Time: 11 February 2020, 11:22:16.644257 am
UUID: 689e2db3-108c-4b2f-bb52-6b6c362626e7
Ancestors: Cog-eem.398
Committing somethign the change history describes afurately:
M SpurMtoNBitImageConverter>>alterSystem
A SpurMtoNBitImageConverter>>flipWordSize
D SpurMtoNBitImageConverter>>nilWordSize
This just to record the idea
=============== Diff against Cog-eem.398 ===============
Item was changed:
----- Method: SpurMtoNBitImageConverter>>alterSystem (in category 'bootstrap image') -----
alterSystem
self ensureSmallFloatInClassTable.
+ self flipWordSize!
- self nilWordSize!
Item was added:
+ ----- Method: SpurMtoNBitImageConverter>>flipWordSize (in category 'bootstrap image') -----
+ flipWordSize
+ | wordSizeSym |
+ wordSizeSym := self findSymbol: #WordSize.
+ targetHeap allOldSpaceObjectsDo:
+ [:o|
+ ((targetHeap rawNumSlotsOf: o) > ValueIndex
+ and: [(targetHeap isFixedSizePointerFormat: (targetHeap formatOf: o))
+ and: [(targetHeap fetchPointer: KeyIndex ofObject: o) = wordSizeSym
+ and: [(targetHeap fetchPointer: ValueIndex ofObject: o) = (targetHeap integerObjectOf: sourceHeap bytesPerOop)]]]) ifTrue:
+ [targetHeap
+ storePointerUnchecked: ValueIndex
+ ofObject: o
+ withValue: (targetHeap integerObjectOf: targetHeap bytesPerOop)]]!
Item was removed:
- ----- Method: SpurMtoNBitImageConverter>>nilWordSize (in category 'bootstrap image') -----
- nilWordSize
- | wordSizeSym |
- wordSizeSym := self findSymbol: #WordSize.
- targetHeap allOldSpaceObjectsDo:
- [:o|
- ((targetHeap numSlotsOf: o) > ValueIndex
- and: [(targetHeap isPointersNonImm: o)
- and: [(targetHeap fetchPointer: KeyIndex ofObject: o) = wordSizeSym
- and: [(targetHeap fetchPointer: ValueIndex ofObject: o) = (targetHeap integerObjectOf: 4)]]]) ifTrue:
- [targetHeap storePointer: ValueIndex ofObject: o withValue: targetHeap nilObject]]!