Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.411.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.411 Author: eem Time: 25 September 2013, 12:32:01.928 am UUID: b0984765-98da-4a23-9bf3-abb88371db54 Ancestors: VMMaker.oscog-eem.410
Fix assert in eeInstantiateClassIndex:format:numSlots:.
Bootstrapped Spur image now evaluates 3+4.
Fix assignment of memory in sqGrowMemory:By: in obj mem sims. Nuke unused methods in interpreter sims (now memory is accessed only by objectMemory).
=============== Diff against VMMaker.oscog-eem.410 ===============
Item was removed: - ----- Method: CogVMSimulator>>sqGrowMemory:By: (in category 'memory access') ----- - sqGrowMemory: oldLimit By: delta - - transcript show: 'grow memory from ', oldLimit printString, ' by ', delta printString; cr. - objectMemory memory: objectMemory memory , (objectMemory memory class new: delta // 4). - ^ objectMemory memory size * 4!
Item was changed: ----- Method: NewCoObjectMemorySimulator>>sqGrowMemory:By: (in category 'memory access') ----- sqGrowMemory: oldLimit By: delta | newMemory | coInterpreter transcript show: 'grow memory from ', oldLimit printString, ' by ', delta printString; cr. memory size * 4 < (oldLimit + delta) ifTrue: [newMemory := (memory class new: oldLimit + delta + 3 // 4). newMemory replaceFrom: 1 to: memory size with: memory startingAt: 1. + memory := newMemory]. - coInterpreter objectMemory memory: (memory := newMemory)]. ^memory size * 4!
Item was changed: ----- Method: NewObjectMemorySimulator>>sqGrowMemory:By: (in category 'memory access') ----- sqGrowMemory: oldLimit By: delta | newMemory | coInterpreter transcript show: 'grow memory from ', oldLimit printString, ' by ', delta printString; cr. memory size * 4 < (oldLimit + delta) ifTrue: [newMemory := (memory class new: oldLimit + delta + 3 // 4). newMemory replaceFrom: 1 to: memory size with: memory startingAt: 1. + memory := newMemory]. - coInterpreter memory: (memory := newMemory)]. ^memory size * 4!
Item was changed: ----- Method: SpurMemoryManager>>eeInstantiateClassIndex:format:numSlots: (in category 'instantiation') ----- eeInstantiateClassIndex: knownClassIndex format: objFormat numSlots: numSlots "Instantiate an instance of a compact class. ee stands for execution engine and implies that this allocation will *NOT* cause a GC. N.B. the instantiated object IS NOT FILLED and must be completed before returning it to Smalltalk. Since this call is used in routines that do just that we are safe. Break this rule and die in GC. Result is guaranteed to be young." <inline: true> + self assert: (numSlots >= 0 and: [knownClassIndex ~= 0]). - self assert: (numSlots > 0 and: [knownClassIndex ~= 0]). self assert: (objFormat < self firstByteFormat ifTrue: [objFormat] ifFalse: [objFormat bitAnd: self byteFormatMask]) = (self instSpecOfClass: (self knownClassAtIndex: knownClassIndex)). ^self allocateNewSpaceSlots: numSlots format: objFormat classIndex: knownClassIndex!
Item was changed: ----- Method: SpurMemoryManager>>isIntegerObject: (in category 'object testing') ----- isIntegerObject: oop "This list records the valid senders of isIntegerObject: as we replace uses of isIntegerObject: by isImmediate: where appropriate." | sel | sel := thisContext sender method selector. (#( DoIt DoItIn: on:do: "from the debugger" makeBaseFrameFor: quickFetchInteger:ofObject: frameOfMarriedContext: objCouldBeClassObj: isMarriedOrWidowedContext: shortPrint: bytecodePrimAt bytecodePrimAtPut commonAt: commonAtPut: loadFloatOrIntFrom: positive32BitValueOf: primitiveExternalCall checkedIntegerValueOf: bytecodePrimAtPut commonAtPut: primitiveVMParameter checkIsStillMarriedContext:currentFP: displayBitsOf:Left:Top:Right:Bottom: fetchStackPointerOf: primitiveContextAt primitiveContextAtPut subscript:with:storing:format: printContext: compare31or32Bits:equal: signed64BitValueOf: primDigitMultiply:negative: digitLength: isNegativeIntegerValueOf: magnitude64BitValueOf: primitiveMakePoint primitiveAsCharacter primitiveInputSemaphore baseFrameReturn primitiveExternalCall primDigitCompare: isLiveContext: numPointerSlotsOf: fileValueOf: loadBitBltDestForm fetchIntOrFloat:ofObject:ifNil: fetchIntOrFloat:ofObject: loadBitBltSourceForm loadPoint:from: primDigitAdd: primDigitSubtract: positive64BitValueOf: digitBitLogic:with:opIndex: signed32BitValueOf: isNormalized: primDigitDiv:negative: + bytesOrInt:growTo: + primitiveNewMethod) includes: sel) ifFalse: - bytesOrInt:growTo:) includes: sel) ifFalse: [self halt]. ^(oop bitAnd: 1) ~= 0!
Item was changed: ----- Method: SpurMemoryManager>>isNonIntegerObject: (in category 'object testing') ----- isNonIntegerObject: oop "This list records the valid senders of isNonIntegerObject: as we replace uses of isNonIntegerObject: by isNonImmediate: where appropriate." + (#( reverseDisplayFrom:to: + primitiveObjectAtPut) includes: thisContext sender method selector) ifFalse: - (#(reverseDisplayFrom:to:) includes: thisContext sender method selector) ifFalse: [self halt]. ^(oop bitAnd: 1) = 0!
Item was removed: - ----- Method: StackInterpreterSimulator>>sqGrowMemory:By: (in category 'memory access') ----- - sqGrowMemory: oldLimit By: delta - - transcript show: 'grow memory from ', oldLimit printString, ' by ', delta printString; cr. - objectMemory memory: objectMemory memory , (objectMemory memory class new: delta // 4). - ^ objectMemory memory size * 4!
vm-dev@lists.squeakfoundation.org