如何同时使用SSE2和PREFETCHh指令?

Gar*_*Yin 5 x86 assembly

在Intel IA-32架构手册第3A卷第2章中,CR4.OSFXSR解释如下:

置1时,使能处理器执行SSE/SSE2/SSE3/SSSE3/SSE4指令,PAUSE,PREFETCHh,SFENCE,LFENCE,MFENCE,MOVNTI,CLFLUSH,CRC32和POPCNT除外.

问题是如果我想同时使用SSE2和PREFETCHh指令,我该怎么办?

Igo*_*sky 4

是的,措辞可能会更清楚。他们的意思是该CR4.OSFXSR位仅控制与 SSE 寄存器一起使用的指令的执行。提到的其他指令不访问 SSE 寄存器,因此它们始终可用(如果实现)。

下面的引用更清楚一些:

如果该标志被清除,[...]此外,如果处理器尝试执行任何 SSE/SSE2/SSE3 指令(PAUSE、PREFETCHh、SFENCE、LFENCE除外),它将生成无效操作码异常 (#UD)。 MFENCE、MOVNTI、CLFLUSH、CRC32 和 POPCNT。