/QIPF_fr32(不使用高 96 浮点寄存器)
更新:2007 年 11 月
通知编译器在 Itanium 中进行编译时,只使用下面的 32 个浮点寄存器,不使用上面的 96 个浮点寄存器。
/QIPF_fr32
备注
说明: |
---|
/QIPF_fr32 只可用于面向 Itanium 的编译器中。此编译器选项不可用于面向 x64 或 x86 的编译器中。 |
编写在内核模式上下文中执行的设备驱动程序时,强烈建议使用 /QIPF_fr32 进行编译。如果某个应用程序切换出内核模式,并且该应用程序上面的 96 个寄存器之一已发生变化(发生中断时会出现这种情况),则该应用程序在切换回用户模式后将无法运行。请考虑下列情形:
中断发生时,应用程序在用户模式下运行。
控制权传递到内核,并且未保存上面的 96 个浮点寄存器。
内核调用未使用 /QIPF_fr32 编译的驱动程序。
驱动程序破坏了上面的浮点寄存器之一。
驱动程序返回内核模式。
内核从中断返回,并且应用程序的上面的浮点寄存器之一被破坏。
/QIPF_fr32 除了使应用程序能够正确地从内核模式切换到用户模式,还增强了在用户模式中进行上下文更改的性能(不必保存或重新加载上面的 96 个浮点寄存器)。
在 Visual Studio 开发环境中设置此编译器选项
- /QIPF_fr32 在 Visual Studio 开发环境下不可用。
以编程方式设置此编译器选项
- 请参见 AdditionalOptions。