[squeak-dev] [Vm-dev] VM Maker: VMMaker.oscog-eem.2606.mcz

Chris Muller asqueaker at gmail.com
Thu Dec 12 04:02:28 UTC 2019


Is this a fix we should want in the 5.3 release?

On Wed, Dec 11, 2019 at 2:09 PM <commits at source.squeak.org> wrote:

>
> 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]]!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191211/fc157d51/attachment.html>


More information about the Squeak-dev mailing list