[Vm-dev] VM Maker: VMMaker.oscog-eem.1038.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Feb 4 22:56:33 UTC 2015
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)]!
More information about the Vm-dev
mailing list