[Vm-dev] VM Maker: Cog-eem.398.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Feb 10 16:30:49 UTC 2020


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.398.mcz

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

Name: Cog-eem.398
Author: eem
Time: 10 February 2020, 8:30:46.968067 am
UUID: 86041e39-6533-4fb5-a43d-153f47d1f3e3
Ancestors: Cog-eem.397

Fix Spur64to32BitImageConverter.

=============== Diff against Cog-eem.397 ===============

Item was changed:
  ----- Method: Spur64to32BitImageConverter>>mapSourceOop: (in category 'bootstrap image') -----
  mapSourceOop: sourceObj
  	"sourceInterpreter printOop: sourceObj"
  	"Map in-range Floats to SmallFloat64's, and in-range LargePointiveIntegers and LargeNegativeIntegers to SmallInteger"
  	^map
  		at: sourceObj
  		ifAbsent:
  			[| value box |
  			 self assert: (sourceHeap isImmediate: sourceObj).
  			 (sourceHeap isImmediateCharacter: sourceObj)
  				ifTrue: [targetHeap characterObjectOf: (sourceHeap characterValueOf: sourceObj)]
  				ifFalse:
  					[(sourceHeap isIntegerObject: sourceObj)
  						ifTrue:
  							[(targetHeap isIntegerValue: (value := sourceHeap integerValueOf: sourceObj))
  								ifTrue: [targetHeap integerObjectOf: value]
  								ifFalse:
  									[box := targetHeap
+ 													allocateSlots: value digitLength + 3 // 4
- 													allocateSlots: 2
  													format: (targetHeap byteFormatForNumBytes: value digitLength)
  													classIndex: (value < 0
  																	ifTrue: [ClassLargeNegativeIntegerCompactIndex]
  																	ifFalse: [ClassLargePositiveIntegerCompactIndex]).
  									 targetHeap storeLong64: 0 ofObject: box withValue: value abs.
  									 box]]
  						ifFalse:
  							[self assert: (sourceHeap isImmediateFloat: sourceObj).
  							 box := targetHeap
  											allocateSlots: 2
  											format: targetHeap firstLongFormat
  											classIndex: ClassFloatCompactIndex.
  							 targetHeap storeLong64: 0 ofObject: box withValue: (sourceHeap smallFloatBitsOf: sourceObj).
  							 box]]]!

Item was changed:
  ----- Method: SpurMtoNBitImageConverter>>fillInBitsObject:from: (in category 'bootstrap image') -----
  fillInBitsObject: targetObj from: sourceObj
+ 	0 to: (sourceHeap numSlotsOf: sourceObj) * (sourceHeap wordSize / 4) - 1 do:
- 	0 to: (sourceHeap num32BitUnitsOf: sourceObj) - 1 do:
  		[:i|
  		targetHeap
  			storeLong32: i
  			ofObject: targetObj
  			withValue: (sourceHeap fetchLong32: i ofObject: sourceObj)]!



More information about the Vm-dev mailing list