私はlibsoxr
(Audacityチームによってライブラリから派生したlibsox
)ライブラリをコンパイルしようとしています。osx 32、osx 64、および win32 をコンパイルできます。それらはインライン asm を使用し、Windows x64 プラットフォームはインライン asm をサポートしていません。問題のあるコードは次のとおりです。
#if HAVE_FENV_H
#include <fenv.h>
#elif defined _MSC_VER
#define FE_INVALID 1
#define FE_DIVBYZERO 4
#define FE_OVERFLOW 8
#define FE_UNDERFLOW 16
#define FE_INEXACT 32
#define FE_ALL_EXCEPT (FE_INEXACT|FE_DIVBYZERO|FE_UNDERFLOW|FE_OVERFLOW|FE_INVALID)
static __inline int fetestexcept(int excepts)
{
short status_word;
__asm fnstsw status_word
return status_word & excepts & FE_ALL_EXCEPT;
}
static __inline int feclearexcept(int excepts)
{
int16_t status[14];
__asm fnstenv status
status[2] &= ~(excepts & FE_ALL_EXCEPT);
__asm fldenv status
return 0;
}
#endif
私は何fnstenv
をするかわからfldenv
ない。x64と互換性を持たせるために誰かが私を案内してもらえますか?