Поделиться через


/QIPF_fr32 (Не используйте верхние регистры 96-разрядного формата с плавающей запятой)

Обновлен: Ноябрь 2007

Инструктирует компилятор использовать только нижние регистры 32-разрядного формата с плавающей запятой и не использовать верхние регистры 96-разрядного формата с плавающей запятой при компиляции для Itanium.

 /QIPF_fr32

Заметки

5y29d6s1.alert_note(ru-ru,VS.90).gifПримечание.

/QIPF_fr32 доступен только в компиляторах, нацеленных на Itanium. Этот параметр недоступен в компиляторах, нацеленных на x64 или x86.

При написании драйвера устройства, работающего в режиме ядра драйвера, настойчиво рекомендуется компиляция с помощью /QIPF_fr32. Если приложение выходит из режима ядра драйвера и ни один из его верхних регистров 96-разрядного формата с плавающей запятой не использовался, вполне возможно, что произошло прерывание; приложение не исполнится при переходе в пользовательский режим. Рассмотрим следующий сценарий:

  • Приложение работает в пользовательском режиме, когда происходит прерывание.

  • Управление переходит в ядро, а верхние регистры 96-разрядного формата с плавающей запятой не сохраняются.

  • Ядро вызывает драйвер, скомпилированный без /QIPF_fr32.

  • Драйвер разрушает один из верхних регистров с плавающей запятой.

  • Драйвер возвращается в режим ядра.

  • Ядро возвращается из прерывания и один из верхних регистров с плавающей запятой разрушается.

Дополнительно с обеспечением правильности приложений, которые переключаются из режима ядра в режим пользователя, /QIPF_fr32 также расширяет выполнение контекстных изменений в пользовательском режиме (верхние регистры 96-разрядного формата с плавающей запятой не требуют сохранения или перезагрузки).

Установка данного параметра компилятора в среде разработки Visual Studio

  • /QIPF_fr32 недоступен в среде разработки Visual Studio.

Установка данного параметра компилятора программным способом

См. также

Ссылки

Параметры /Q (низкоуровневые операции)

Параметры компилятора

Настройка параметров компилятора