我对 x87说明 用于操纵X86组件中的浮点数。但是,我在某个地方读到这些很少使用。 (并且不允许在64位Windows驱动程序中)[1]

如果是这样,我应该使用什么说明?我看到了有关SSE的一些信息,但是除非我有误,否则这些说明最近添加了很多,并且在较旧的芯片上将无法使用。 (例如奔腾II等)

什么说明 应该 我正在使用?

有帮助吗?

解决方案

如果您愿意忘记向后兼容性,那么SSE就是必经之路。它具有更丰富的指令集和向量支持。如果您想对正在运行的任何处理器进行优化,则应尝试使用更高级别的语言编写,并使用ICC编译,该章程检查处理器当前正在运行并执行对此进行了优化的代码。

归根结底,这取决于软件的预期用户。

其他提示

如果您需要向后兼容,则必须使用X87说明。否则,正如内森·费尔曼(Nathan Fellman)所说,SSE#指令可能是必经之路,也是因为为它们编写代码(他们使用普通寄存器模型,而X87使用堆栈)。

话虽如此,您可能需要使用X87代码(或混合X87/SSE代码)的原因有很多:

(1)X87提供了更高的精度,即80位浮点计算。 (X87/SSE都提供32位和64位浮子。)这可能是一些可能需要额外精确度的科学代码的问题。

(2)X87提供了一些不受SSE#指令集涵盖的操作,即三通操作的说明(SIN,COS,...)和对数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top