[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