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: $)! |
Free forum by Nabble | Edit this page |