[PATCH] jscript: Force base type of _jsval_t to be ULONGLONG instead of double.
Dmitry Timoshkov
dmitry at baikal.ru
Fri Apr 2 01:19:13 CDT 2021
Hi Jacek,
Jacek Caban <jacek at codeweavers.com> wrote:
> >>> Gabriel Ivăncescu <gabrielopcode at gmail.com> wrote:
> >>>
> >>>> Looks like a bug in Clang to me, although working around it is fine, but
> >>>> it's not my call.
> >>>>
> >>>> Nevertheless I think you should report it to Clang so they fix it.
> >>> Why do you think that it's a clang bug? Using fldl + fstpl to store and
> >>> fetch the double to/from the floating point stack is perfectly legitimate.
> >>>
> >> Well, because jsval_t is a union, not a double. Shouldn't assignment be
> >> a bitwise copy? The compiler can't know what actual type is used by the
> >> union here. Unless I misremember the C standard.
> > If I understand correctly, the compiler have chosen the memeber of
> > a maximal bits width and used it for a copy. That's unfortunate that
> > the chosen member happened to be of type 'double', and as a result
> > floating point instructions were used to perform the copying operation.
>
>
> Compiler is free to use any copy implementation it wants, but it can't
> affect stored values. If it changes stored values, it's obviously a
> compiler bug. But it would be good to understand what's exactly going on
> before jumping to that conclusion. From your description, I don't yet
> see the exact problem. I also can't reproduce it with my builds. Could
> you please send me your jscript.dll build?
Did you find anything useful in jscript.dll that I sent you?
--
Dmitry.
More information about the wine-devel
mailing list