mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 07:23:03 +01:00
Restore previous code for Win64 platform as it missed __control87_2() routine.
This commit is contained in:
parent
863d4b6e4d
commit
b811b82d35
@ -83,8 +83,12 @@ public:
|
|||||||
{
|
{
|
||||||
_clearfp(); // always call _clearfp() before setting control word
|
_clearfp(); // always call _clearfp() before setting control word
|
||||||
|
|
||||||
|
#ifdef AMD64
|
||||||
|
_controlfp(_CW_DEFAULT, _MCW_EM);
|
||||||
|
#else
|
||||||
Mask cw;
|
Mask cw;
|
||||||
__control87_2(_CW_DEFAULT, _MCW_EM, &cw, NULL);
|
__control87_2(_CW_DEFAULT, _MCW_EM, &cw, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -98,15 +102,23 @@ private:
|
|||||||
|
|
||||||
static void getCurrentMask(Mask& m) throw()
|
static void getCurrentMask(Mask& m) throw()
|
||||||
{
|
{
|
||||||
|
#ifdef AMD64
|
||||||
|
m = _controlfp(0, 0);
|
||||||
|
#else
|
||||||
__control87_2(0, 0, &m, NULL);
|
__control87_2(0, 0, &m, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void restoreMask() throw()
|
void restoreMask() throw()
|
||||||
{
|
{
|
||||||
_clearfp(); // always call _clearfp() before setting control word
|
_clearfp(); // always call _clearfp() before setting control word
|
||||||
|
|
||||||
|
#ifdef AMD64
|
||||||
|
_controlfp(savedMask, _MCW_EM); // restore saved
|
||||||
|
#else
|
||||||
Mask cw;
|
Mask cw;
|
||||||
__control87_2(savedMask, _MCW_EM, &cw, NULL); // restore saved
|
__control87_2(savedMask, _MCW_EM, &cw, NULL); // restore saved
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HAVE_FEGETENV)
|
#elif defined(HAVE_FEGETENV)
|
||||||
|
Loading…
Reference in New Issue
Block a user