[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