/QIPF_fr32(不使用高 96 浮点寄存器)

通知编译器在针对 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 开发环境下不可用。

以编程方式设置此编译器选项

请参见

参考

/Q 选项(低级别操作)

编译器选项

设置编译器选项