VM Maker: Cog-eem.317.mcz

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

VM Maker: Cog-eem.317.mcz

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