/QIPF_fr32 (Не используйте верхние регистры 96-разрядного формата с плавающей запятой)
Обновлен: Ноябрь 2007
Инструктирует компилятор использовать только нижние регистры 32-разрядного формата с плавающей запятой и не использовать верхние регистры 96-разрядного формата с плавающей запятой при компиляции для Itanium.
/QIPF_fr32
Заметки
Примечание. |
---|
/QIPF_fr32 доступен только в компиляторах, нацеленных на Itanium. Этот параметр недоступен в компиляторах, нацеленных на x64 или x86. |
При написании драйвера устройства, работающего в режиме ядра драйвера, настойчиво рекомендуется компиляция с помощью /QIPF_fr32. Если приложение выходит из режима ядра драйвера и ни один из его верхних регистров 96-разрядного формата с плавающей запятой не использовался, вполне возможно, что произошло прерывание; приложение не исполнится при переходе в пользовательский режим. Рассмотрим следующий сценарий:
Приложение работает в пользовательском режиме, когда происходит прерывание.
Управление переходит в ядро, а верхние регистры 96-разрядного формата с плавающей запятой не сохраняются.
Ядро вызывает драйвер, скомпилированный без /QIPF_fr32.
Драйвер разрушает один из верхних регистров с плавающей запятой.
Драйвер возвращается в режим ядра.
Ядро возвращается из прерывания и один из верхних регистров с плавающей запятой разрушается.
Дополнительно с обеспечением правильности приложений, которые переключаются из режима ядра в режим пользователя, /QIPF_fr32 также расширяет выполнение контекстных изменений в пользовательском режиме (верхние регистры 96-разрядного формата с плавающей запятой не требуют сохранения или перезагрузки).
Установка данного параметра компилятора в среде разработки Visual Studio
- /QIPF_fr32 недоступен в среде разработки Visual Studio.
Установка данного параметра компилятора программным способом
- См. раздел AdditionalOptions.