VM Maker: Cog-eem.398.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.398.mcz

commits-2
 
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)]!