VM Maker: VMMaker.oscog-eem.1400.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.1400.mcz

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

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

Name: VMMaker.oscog-eem.1400
Author: eem
Time: 29 June 2015, 2:53:44.273 pm
UUID: 5e8b83f1-809e-46d3-8ab1-38d50fdf3ff4
Ancestors: VMMaker.oscog-cb.1399

Fix block mehtod header printing and scavenge
threshold access in in-image compilation/disassembly.

=============== Diff against VMMaker.oscog-cb.1399 ===============

Item was changed:
  ----- Method: Cogit>>printMethodHeader:on: (in category 'disassembly') -----
  printMethodHeader: cogMethod on: aStream
  <doNotGenerate>
  self cCode: ''
  inSmalltalk:
  [cogMethod isInteger ifTrue:
  [^self printMethodHeader: (self cogMethodOrBlockSurrogateAt: cogMethod) on: aStream]].
  aStream ensureCr.
  cogMethod asInteger printOn: aStream base: 16.
  cogMethod cmType = CMMethod ifTrue:
  [aStream crtab; nextPutAll: 'objhdr: '.
  cogMethod objectHeader printOn: aStream base: 16].
  cogMethod cmType = CMBlock ifTrue:
+ [aStream crtab; nextPutAll: 'homemth: '.
- [aStream nextPutAll: 'homemth: '.
  cogMethod cmHomeMethod asUnsignedInteger printOn: aStream base: 16.
  aStream crtab; nextPutAll: 'startpc: '; print: cogMethod startpc].
  aStream
  crtab; nextPutAll: 'nArgs: '; print: cogMethod cmNumArgs;
  tab;    nextPutAll: 'type: '; print: cogMethod cmType.
  (cogMethod cmType ~= 0 and: [cogMethod cmType ~= CMBlock]) ifTrue:
  [aStream crtab; nextPutAll: 'blksiz: '.
  cogMethod blockSize printOn: aStream base: 16.
  cogMethod cmType = CMMethod ifTrue:
  [aStream crtab; nextPutAll: 'method: '.
  cogMethod methodObject printOn: aStream base: 16.
  aStream crtab; nextPutAll: 'mthhdr: '.
  cogMethod methodHeader printOn: aStream base: 16].
  aStream crtab; nextPutAll: 'selctr: '.
  cogMethod selector printOn: aStream base: 16.
  (coInterpreter lookupAddress: cogMethod selector) ifNotNil:
  [:string| aStream nextPut: $=; nextPutAll: string].
  cogMethod cmType = CMMethod ifTrue:
  [aStream crtab; nextPutAll: 'blkentry: '.
  cogMethod blockEntryOffset printOn: aStream base: 16.
  cogMethod blockEntryOffset ~= 0 ifTrue:
  [aStream nextPutAll: ' => '.
  cogMethod asInteger + cogMethod blockEntryOffset printOn: aStream base: 16]]].
  cogMethod cmType = CMClosedPIC
  ifTrue:
  [aStream crtab; nextPutAll: 'cPICNumCases: '.
  cogMethod cPICNumCases printOn: aStream base: 16.]
  ifFalse:
  [aStream crtab; nextPutAll: 'stackCheckOffset: '.
  cogMethod stackCheckOffset printOn: aStream base: 16.
  cogMethod stackCheckOffset > 0 ifTrue:
  [aStream nextPut: $/.
  cogMethod asInteger + cogMethod stackCheckOffset printOn: aStream base: 16].
  cogMethod cmType = CMBlock
  ifTrue:
  [aStream
  crtab;
  nextPutAll: 'cbUsesInstVars ';
  nextPutAll: (cogMethod cbUsesInstVars ifTrue: ['yes'] ifFalse: ['no'])]
  ifFalse:
  [aStream
  crtab;
  nextPutAll: 'cmRefersToYoung: ';
  nextPutAll: (cogMethod cmRefersToYoung ifTrue: ['yes'] ifFalse: ['no'])].
  cogMethod cmType = CMMethod ifTrue:
  [([cogMethod nextMethodOrIRCs] on: MessageNotUnderstood do: [:ex| nil]) ifNotNil:
  [:nmoircs| aStream crtab; nextPutAll: 'nextMethodOrIRCs: '.
  nmoircs = 0 ifTrue: [aStream print: nmoircs] ifFalse: [coInterpreter printHex: nmoircs]].
  ([cogMethod counters] on: MessageNotUnderstood do: [:ex| nil]) ifNotNil:
  [:cntrs| aStream crtab; nextPutAll: 'counters: '.
  cntrs = 0 ifTrue: [aStream print: cntrs] ifFalse: [coInterpreter printHex: cntrs]]]].
  aStream cr; flush!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacadeForSpurObjectRepresentation>>getScavengeThreshold (in category 'accessing') -----
  getScavengeThreshold
+ ^variables
+ at: 'scavengeThreshold'
+ ifAbsentPut: [objectMemory getScavengeThreshold ifNil: [16r24680]]!
- ^objectMemory getScavengeThreshold ifNil: [16r24680]!

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 := limit.
+ scavengeThreshold := limit * 3 // 4.
- 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!

Item was changed:
  ----- Method: Spur64BitCoMemoryManager>>initializeFreeSpaceForFacadeFrom:to: (in category 'simulation only') -----
  initializeFreeSpaceForFacadeFrom: base to: limit
  "c.f. initializeFreeSpacePostLoad: freeListObj."
  | freeListObj freeBytes |
  newSpaceLimit := oldSpaceStart := freeStart := base.
+ endOfMemory := limit.
+ scavengeThreshold := limit * 3 // 4.
- 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!