ОБЗОР
#include <i386/fpu_control.h>
void __setfpucw(unsigned short control_word);
ОПИСАНИЕ
В архитектуре i386 функция __setfpucw() пересылает control_word в
регистр FPU (модуль обработки операций с плавающей точкой). Используется для
управления точностью, округлением и исключениями при операциях с плавающей
точкой.
СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция является нестандартным расширением GNU.
ЗАМЕЧАНИЯ
Начиная с glibc 2.1 эта функция не существует. Для управления режимами
округления FPU в ISO C99 введены новые функции (прототипы объявлены в
<fenv.h>): fegetround(3), fesetround(3), окружением при
работе с плавающей точкой: fegetenv(3), feholdexcept(3),
fesetenv(3), feupdateenv(3) и для управления исключениями FPU:
feclearexcept(3), fegetexceptflag(3), feraiseexcept(3),
fesetexceptflag(3) и fetestexcept(3).
Если по какой-то причине необходим прямой доступ к слову управления FPU, то можно использовать макросы _FPU_GETCW и _FPU_SETCW из <fpu_control.h>.
ПРИМЕР
__setfpucw(0x1372)
Устанавливает слово управления FPU на архитектуре i386:
- включает расширенную точность
- включает округление к ближайшему
- включает исключение при переполнении, делении на ноль и NaN