Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.317.mcz
==================== Summary ====================
Name: Cog-eem.317 Author: eem Time: 30 April 2016, 10:53:05.924588 am UUID: 421df5c5-c733-442e-9a19-0db0e78025d9 Ancestors: Cog-eem.316
Eliminate ARM-specific code from abstract disassembler ,ethodf overridden in ARM subclass.
=============== Diff against Cog-eem.316 ===============
Item was changed: ----- Method: CogProcessorAlien>>disassembleFrom:to:in:for:labels:on: (in category 'disassembly') ----- disassembleFrom: startAddress to: endAddress in: memory for: aSymbolManager "<Cogit>" labels: labelDictionary on: aStream | address | address := startAddress. [address <= endAddress] whileTrue: + [[:sizeArg :stringArg| | size string | + size := sizeArg. + string := stringArg. + (aSymbolManager labelForPC: address) ifNotNil: - [[:sizeArg :stringArg| | size string index offset | - size := sizeArg. - string := stringArg. - (aSymbolManager labelForPC: address) ifNotNil: [:label| aStream nextPutAll: label; nextPut: $:; cr]. + (labelDictionary at: address ifAbsent: []) ifNotNil: - (labelDictionary at: address ifAbsent: []) ifNotNil: [:label| label isArray ifTrue: [label first == #literal ifTrue: [aStream nextPutAll: (address printStringBase: 16 length: 8 padded: true) asLowercase; nextPut: $:; space; nextPutAll: (aSymbolManager lookupAddress: (aSymbolManager objectMemory longAt: address))] ifFalse: [aStream nextPutAll: label first; nextPut: $:; cr; nextPutAll: (address printStringBase: 16 length: 8 padded: true) asLowercase; nextPut: $:; space; nextPutAll: (aSymbolManager perform: label second with: address) asString]. string := nil. size := label third] ifFalse: [aStream nextPutAll: label; nextPut: $:; cr]]. + string ifNotNil: + [aStream nextPutAll: (self decorateDisassembly: string for: aSymbolManager fromAddress: address)]. + aStream cr; flush. + address := address + size] - string ifNotNil: - [aStream nextPutAll: (self decorateDisassembly: string for: aSymbolManager fromAddress: address). - ((string includesSubString: ': ldr ') - and: [(index := string indexOfSubCollection: ' [pc, #' startingAt: 1) > 0]) ifTrue: - [offset := Integer readFrom: (ReadStream on: string from: index + 6 to: string size). - offset := address + 8 + offset. - labelDictionary - at: offset - ifAbsentPut: []]]. - aStream cr; flush. - address := address + size] valueWithArguments: (self primitiveDisassembleAt: address inMemory: memory)]!
vm-dev@lists.squeakfoundation.org