[Vm-dev] VM Maker: VMMaker.oscog-eem.1400.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jun 29 21:57:28 UTC 2015
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!
More information about the Vm-dev
mailing list