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: trueroad
Subject: Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by address@hidden)
Date: Fri, 31 Jan 2020 02:45:42 -0800

Hello Arnold.
Thank you for your patch.

If I understand correctly, we only need check the definitions of
`__x86__` and `__i386__` check.

In x86_64 environment, neither `__x86__` nor `__i386__` are defined.

```
$ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__x86__"

$ echo | x86_64-w64-mingw32-gcc -dM -E - | grep "__i386__"

$ echo | i686-w64-mingw32-gcc -dM -E - | grep "__x86__"

$ echo | i686-w64-mingw32-gcc -dM -E - | grep "__i386__"
#define __i386__ 1

$
```

Therefore, `defined (__code_model_32__)`  is not necessary.

If `__SSE2_MATH__` is defined, it only indicates that main.cc is
compiled with SSE2 math enabled.
Shared libraries such as libguile may still use x86 FPU.
If the floating point calculation inside GUILE uses x86 FPU, we need to
set the precision even if C++ uses SSE2.

Therefore, `defined (__SSE2_MATH__)`  is not necessary.

Furthermore, if the floating-point operations of all modules use SSE2,
setting the x86 FPU precision has no effect because it is not used.
In other words, there is no problem even if the precision is set on a
platform that does not need to set.

Therefore, environment definitions such as `defined (__MINGW32__)`  is
not necessary.


https://codereview.appspot.com/577450043/



reply via email to

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