[Vm-dev] VM Maker: VMMaker.oscog-eem.2612.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Dec 14 02:59:44 UTC 2019
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: $)!
More information about the Vm-dev
mailing list