[Vm-dev] Small discrepancy in fileTimesInUTC between simulation & VM
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Sat Jan 2 08:33:42 UTC 2021
Hi both,
thanks for the hint, it's not obvious indeed !
We may eventually do like the simulation, always shift the flags, something
like:
^self shiftedImageHeaderFlags anyMask: 128
The shift method would always be inlined, and I guess that the C compiler
would generate equally efficient code for those two expressions
(flags >> 2) & 128.
flags & 512.
Anyway, we do not check flags in tight loops, do we?
Le mar. 29 déc. 2020 à 05:52, Eliot Miranda <eliot.miranda at gmail.com> a
écrit :
>
> Hi Nicolas,
>
> On Sun, Dec 27, 2020 at 5:52 AM Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com> wrote:
>
>>
>> Hi all, Eliot,
>>
>> Simulation says:
>>
>> ^(Smalltalk vmParameterAt: 48) anyMask: 128
>>
>> VM says:
>>
>> ^imageHeaderFlags anyMask: 512
>>
>> Is the difference intentional?
>>
>
> It is, and it's a confusing mess for which I apologize. The issue is that
> the least significant two bits of the flags word are the full screen flag
> and the "vm is big endian" flag. Neither of these needs a setter since the
> full screen flag is set via the toggle full screen primitive and the "vm
> is big endian" is a constant depending on the VM. Hence Smalltalk
> vmParameterAt: 48 answers the flags bit shifted right 2 bits. I get bit by
> this all the time and wish I had not introduced the shift. Back in early
> October in VMMaker.oscog-eem.2837 I wrote completely incorrect code that
> screwed up several flags until VMMaker.oscog-eem.2848 that I fixed a week
> later. But unfortunately the damage is done. All we can do is comment the
> situation, while I beg forgiveness and forbearance.
>
> _,,,^..^,,,_
> best, Eliot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210102/b414ec76/attachment.html>
More information about the Vm-dev
mailing list