[Vm-dev] VM Maker: VMMaker.oscog-eem.868.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Aug 28 08:29:11 UTC 2014


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.868.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.868
Author: eem
Time: 28 August 2014, 9:25:21.878 am
UUID: 14a9feae-9641-497b-afe9-190e47fd6e37
Ancestors: VMMaker.oscog-eem.867

Rescue in-image compilation for V3

=============== Diff against VMMaker.oscog-eem.867 ===============

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>initialize (in category 'initialize-release') -----
  initialize
  	memory := (VMBIGENDIAN
  					ifTrue: [Bitmap]
  					ifFalse: [LittleEndianBitmap]) new: 1024*1024/4.
  	objectMemory := self class objectMemoryClass simulatorClass new.
+ 	objectMemory
+ 		initializeFreeSpaceForFacadeFrom: self startOfMemory
+ 		to: self variablesBase.
  	objectMemory memory: memory.
  	coInterpreter := CoInterpreter new.
  	coInterpreter
  		instVarNamed: 'objectMemory'
  			put: objectMemory;
  		instVarNamed: 'primitiveTable'
  			put: (CArrayAccessor on: CoInterpreter primitiveTable copy).
  	variables := Dictionary new.
  	#('stackLimit') do:
  		[:l| self addressForLabel: l].
  	self initializeObjectMap!

Item was removed:
- ----- Method: CurrentImageCoInterpreterFacadeForSpurObjectRepresentation>>initialize (in category 'initialize-release') -----
- initialize
- 	super initialize.
- 	objectMemory
- 		initializeFreeSpaceForFacadeFrom: self startOfMemory
- 		to: self variablesBase!

Item was added:
+ ----- Method: NewCoObjectMemory>>initializeFreeSpaceForFacadeFrom:to: (in category 'simulation') -----
+ initializeFreeSpaceForFacadeFrom: base to: limit
+ 	freeStart := base.
+ 	endOfMemory := scavengeThreshold := limit!

Item was changed:
  ----- Method: Spur32BitCoMemoryManager>>initializeFreeSpaceForFacadeFrom:to: (in category 'simulation only') -----
  initializeFreeSpaceForFacadeFrom: base to: limit
  	"c.f. initializeFreeSpacePostLoad: freeListObj."
  	| freeListObj freeBytes |
  	newSpaceLimit := oldSpaceStart := freeStart := base.
+ 	endOfMemory := scavengeThreshold := limit.
- 	endOfMemory := scavengeThreshold := limit..
  	segmentManager initSegmentForInImageCompilationFrom: base to: limit.
  	freeListObj := self allocateSlots: self numFreeLists
  						format: self wordIndexableFormat
  						classIndex: self wordSizeClassIndexPun.
  	freeLists := self firstIndexableField: freeListObj.
  	freeListsMask := 0.
  	0 to: self numFreeLists - 1 do:
  		[:i|
  		(freeLists at: i) ~= 0 ifTrue:
  			[freeListsMask := freeListsMask bitOr: (1 << i).
  			 freeLists at: i put: (segmentManager swizzleObj: (freeLists at: i))]].
  	freeBytes := segmentManager lastSegment segLimit - self bridgeSize - freeStart.
  	freeLists at: 0 put: (self initFreeChunkWithBytes: freeBytes at: freeStart).
  	totalFreeOldSpace := freeBytes!



More information about the Vm-dev mailing list