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

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

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

Name: VMMaker.oscog-eem.2612
Author: eem
Time: 13 December 2019, 6:59:18.615158 pm
UUID: cec9af60-cb62-4aa5-895f-43ceb65ee857
Ancestors: VMMaker.oscog-eem.2611

Cogit: And if available, include symbolic info in abstract opcode printing.

=============== Diff against VMMaker.oscog-eem.2611 ===============

Item was changed:
  ----- Method: CogAbstractInstruction>>printStateOn: (in category 'printing') -----
  printStateOn: aStream
  | opcodeName orneryOperands format |
  <doNotGenerate> "Smalltalk-side only"
  opcode ifNil:
  [^self].
  aStream space; nextPut: $(; nextPutAll: (opcodeName := self class nameForOpcode: opcode).
  orneryOperands := operands isCObjectAccessor
  ifTrue: [operands object]
  ifFalse: [operands].
  format := ((CogRTLOpcodes classPool includesKey: opcodeName)
  ifTrue: [CogRTLOpcodes]
  ifFalse: [self class]) printFormatForOpcodeName: opcodeName.
  orneryOperands withIndexDo:
  [:operand :index|
  operand ifNotNil:
  [aStream space.
  index >= (orneryOperands identityIndexOf: nil ifAbsent: [orneryOperands size + 1]) ifTrue:
  [aStream print: index - 1; nextPut: $:].
  (format notNil and: ['rf' includes: (format at: index ifAbsent: $-)])
  ifTrue: [aStream nextPutAll: ((format at: index) = $r
  ifTrue: [self nameForRegister: operand]
  ifFalse: [self nameForFPRegister: operand])]
  ifFalse:
+ [| operandNameOrNil |
+ operandNameOrNil := (cogit coInterpreter lookupAddress: operand) ifNil: [objectMemory lookupAddress: operand].
+ operandNameOrNil ifNotNil: [aStream nextPut: ${].
+ aStream print: operand.
- [aStream print: operand.
  (operand isInteger and: [operand > 16 and: [opcode ~= Label]]) ifTrue:
  [objectMemory wordSize = 8
  ifTrue:
  [(operand allMask: 1 << 63) ifTrue:
  [aStream nextPut: $/; print: operand signedIntFromLong64]]
  ifFalse:
  [(operand allMask: 1 << 31) ifTrue:
  [aStream nextPut: $/; print: operand signedIntFromLong]].
  aStream nextPut: $/.
+ operand printOn: aStream base: 16.
+ operandNameOrNil ifNotNil:
+ [aStream nextPut: $=; nextPutAll: operandNameOrNil; nextPut: $}]]]]].
- operand printOn: aStream base: 16]]]].
  machineCodeSize ifNotNil:
  [(machineCodeSize between: 1 and: machineCode size) ifTrue:
  [0 to: machineCodeSize - 1 by: self codeGranularity do:
  [:i|
  aStream space.
  (self machineCodeAt: i)
  ifNil: [aStream nextPut: $.]
  ifNotNil:
  [:mc|
  mc isInteger
  ifTrue: [mc printOn: aStream base: 16]
  ifFalse: [mc printOn: aStream]]]]].
  address ifNotNil:
+ [aStream space; nextPut: $@.
- [aStream nextPut: $@.
  address printOn: aStream base: 16].
  aStream nextPut: $)!