VM Maker: VMMaker.oscog-eem.411.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.411.mcz

commits-2
 
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!