Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1038.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1038 Author: eem Time: 4 February 2015, 2:55:03.718 pm UUID: b980b192-bb2a-4a7b-9ca5-e570007bc55e Ancestors: VMMaker.oscog-eem.1037
Fix 32-bit word reversal in 64-bit Spur and hence fix 64-bit pur image segment loading.
Make sure the leak checker is run when image segment leak checking is enabled.
Never inline fetchClassOf: in Spur; it's a lot of code and should be rare, dynamically.
=============== Diff against VMMaker.oscog-eem.1037 ===============
Item was changed: ----- Method: SpurMemoryManager>>fetchClassOfNonImm: (in category 'object access') ----- fetchClassOfNonImm: objOop + <inline: #never> | classIndex | classIndex := self classIndexOf: objOop. classIndex <= self classIsItselfClassIndexPun ifTrue: [classIndex = self classIsItselfClassIndexPun ifTrue: [^objOop]. "Answer nil to avoid the assert failure in classOrNilAtIndex:" classIndex = self isForwardedObjectClassIndexPun ifTrue: [^nilObj]]. self assert: classIndex >= self arrayClassIndexPun. ^self classOrNilAtIndex: classIndex!
Item was changed: ----- Method: SpurMemoryManager>>reverseBytesIn32BitWordsFrom:to: (in category 'snapshot') ----- reverseBytesIn32BitWordsFrom: startAddr to: stopAddr "Byte-swap the given range of memory (not inclusive of stopAddr!!)." | addr | addr := startAddr. [self oop: addr isLessThan: stopAddr] whileTrue: [self long32At: addr put: (self byteSwapped32Bits: (self long32At: addr)). + addr := addr + 4]! - addr := addr + self wordSize]!
Item was changed: ----- Method: SpurMemoryManager>>runLeakCheckerForFullGC:excludeUnmarkedNewSpaceObjs:classIndicesShouldBeValid: (in category 'debug support') ----- runLeakCheckerForFullGC: fullGCFlag excludeUnmarkedNewSpaceObjs: excludeUnmarkedNewSpaceObjs classIndicesShouldBeValid: classIndicesShouldBeValid <inline: false> (fullGCFlag + ifTrue: [self leakCheckFullGC or: [self leakCheckImageSegments]] - ifTrue: [self leakCheckFullGC] ifFalse: [self leakCheckNewSpaceGC]) ifTrue: [fullGCFlag ifTrue: [coInterpreter reverseDisplayFrom: 0 to: 7] ifFalse: [coInterpreter reverseDisplayFrom: 8 to: 15]. self clearLeakMapAndMapAccessibleObjects. self assert: (self checkHeapIntegrity: excludeUnmarkedNewSpaceObjs classIndicesShouldBeValid: classIndicesShouldBeValid). self assert: coInterpreter checkInterpreterIntegrity. self assert: coInterpreter checkStackIntegrity. self assert: (coInterpreter checkCodeIntegrity: fullGCFlag)]!
vm-dev@lists.squeakfoundation.org