Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2606.mcz==================== Summary ====================
Name: VMMaker.oscog-eem.2606
Author: eem
Time: 11 December 2019, 12:08:45.007873 pm
UUID: be1eac72-340a-4ed5-bfe7-6051597847a4
Ancestors: VMMaker.oscog-eem.2605
Fix the "funny floats" issue with gcc et al. Casting the address of an automatic long to an int * is no longer allowed. Thanks to Pablo Tessone for the analysis and fix.
=============== Diff against VMMaker.oscog-eem.2605 ===============
Item was changed:
----- Method: Spur64BitMemoryManager>>fetchLong32:ofFloatObject: (in category 'object access') -----
fetchLong32: fieldIndex ofFloatObject: oop
"index by word size, and return a pointer as long as the word size"
| bits |
(self isImmediateFloat: oop) ifFalse:
[^self fetchLong32: fieldIndex ofObject: oop].
bits := self smallFloatBitsOf: oop.
+ ^fieldIndex = 0
+ ifTrue: [bits bitAnd: 16rFFFFFFFF]
+ ifFalse: [bits >> 32]!
- ^self
- cCode: [(self cCoerceSimple: (self addressOf: bits) to: #'int *') at: fieldIndex]
- inSmalltalk:
- [self flag: #endian.
- fieldIndex = 0
- ifTrue: [bits bitAnd: 16rFFFFFFFF]
- ifFalse: [bits >> 32]]!