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: ArnoldTheresius
Subject: Re: Inline assembler fallback for _FPU_SETCW() missing in MINGW libraries (issue 577450043 by address@hidden)
Date: Fri, 31 Jan 2020 05:26:31 -0700 (MST)

trueroad wrote
> 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/

Thank you for the clear answer.

Therfore, do it as suggested [move asm() call closer to _FPU_SETCW() call]

ArnoldTheresius.




--
Sent from: http://lilypond.1069038.n5.nabble.com/Dev-f88644.html



reply via email to

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