[squeak-dev] [Vm-dev] VM Maker: VMMaker.oscog-eem.2606.mcz
Eliot Miranda
eliot.miranda at gmail.com
Thu Dec 12 14:41:55 UTC 2019
Hi Levente,
>> On Thu, 12 Dec 2019, Levente Uzonyi wrote:
>>
>> Hi Eliot,
>>
>>> On Thu, 12 Dec 2019, Eliot Miranda wrote:
>>>
>>> Hi Chris,
>>>> On Dec 11, 2019, at 8:03 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>>
>>> Is this a fix we should want in the 5.3 release?
>>> I do t think it affects the release. This only affects builds that use a particular version of gcc on ARM64. As far as we’re aware, it doesn’t affect x86-64 builds. But if anyone sees the issue in a current build they
>>> should say so asap.
>>
>> This seems to be the same bug described in this thread: http://forum.world.st/Primitive-40-asFloat-fails-for-me-tp5095689p5095908.html
> On Dec 12, 2019, at 2:45 AM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
>
> And the point is that the bug causes issues on x86.
Thanks! Will fix asap and communicate with the board if this implies we need a different release candidate VM.
>> Levente
>>
>>>
>>>> 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]]!
>
More information about the Squeak-dev
mailing list
|