lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW librarie


From: David Kastrup
Subject: Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by address@hidden)
Date: Sat, 01 Feb 2020 15:48:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Masamichi Hosoda <address@hidden> writes:

>>>> You provided a lot of good information in your post, but the
>>>> conclusion was not entirely clear.
>>>> Are you suggesting requiring SSE2 at this time?
>>> 
>>> Yes.  It appears to get used anyway for 64bit executables, and it seems
>>> safe enough to demand it for 32bit executables.
>> 
>> +1
>> far better than inline asm poking control registers
>
> The cause of the issues is that
> the unexpected precision conversions raises small difference
> in floating-point calculation.
>
> If libguile uses x87 FPU, high-precision calculation
> and low-precision calculation coexist inside GUILE,
> and precision conversion occurs between them.
>
> Even if C++ uses SSE2,
> libguile and other shared libraries still may use x87 FPU.
>
> I wonder this may cause problems.

As I said: we go through the same code paths in Guile every time (and
floating point numbers are passed on the stack in double size, not
extended double), so as opposed to compilation to assembly language, the
results should be the same for multiple invocations of the same formula.

So I don't think we'd trigger the problems we see now.  And math
routines in libguile might not expect the FPU to be in an unconventional
mode.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]