Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3084.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3084 Author: eem Time: 1 October 2021, 2:45:11.62508 pm UUID: ee7b4320-d292-4786-a3b9-4eadf2628eb7 Ancestors: VMMaker.oscog-mt.3083
Sionara fromIEEE64BitWord:; Kon'nichiwa fromIEEE64Bit:
=============== Diff against VMMaker.oscog-mt.3083 ===============
Item was changed: ----- Method: CFloatArray>>at: (in category 'accessing') ----- at: offset | address | address := unitSize * offset + self ptrAddress. ^unitSize >= 4 ifTrue: [unitSize = 4 ifTrue: [Float fromIEEE32Bit: (interpreter long32At: address)] + ifFalse: [Float fromIEEE64Bit: (interpreter long64At: address)]] - ifFalse: [Float fromIEEE64BitWord: (interpreter long64At: address)]] ifFalse: [self error: 'unitSize must be 4 or 8']!
Item was removed: - ----- Method: Float class>>fromIEEE64BitWord: (in category '*VMMaker-instance creation') ----- - fromIEEE64BitWord: anInteger - | value | - value := self basicNew: 2. - value - basicAt: 1 put: (anInteger bitShift: -32); - basicAt: 2 put: (anInteger bitAnd: 16rFFFFFFFF). - ^value isFinite - ifTrue: [value * 1.0] "reduce to SmallFloat64 if possible" - ifFalse: [value] - - "[| r | - r := Random new. - 100000 timesRepeat: - [| h l f | - h := (r next * 16r100000000) rounded bitAnd: 16rFFFFFFFF. - l := (r next * 16r100000000) rounded bitAnd: 16rFFFFFFFF. - f := Float fromIEEE64BitWord: (h bitShift: 32) + l. - self assert: h = (f basicAt: 1). - self assert: l = (f basicAt: 2)]] timeToRun"!
Item was changed: ----- Method: SpurMemoryManager>>floatAtPointer: (in category 'simulation only') ----- floatAtPointer: ptr "See platforms/Cross/vm/sqMemoryAccess.h for the production implementation." <doNotGenerate> + ^Float fromIEEE64Bit: (self long64At: ptr)! - ^Float fromIEEE64BitWord: (self long64At: ptr)!
vm-dev@lists.squeakfoundation.org