[Vm-dev] VM Maker: VMMaker.oscog-eem.411.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Sep 25 07:36:50 UTC 2013
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!
More information about the Vm-dev
mailing list