[Vm-dev] VM Maker: VMMaker.oscog-eem.3084.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Oct 1 21:45:23 UTC 2021
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)!
More information about the Vm-dev
mailing list