是否可以使用Visual Studio 2010内联汇编程序中的新SSE寄存器?如果是,必须如何满足以及还必须满足哪些条件?例如,我不知道x86和x64模式下是否都有新的寄存器。
在Visual Studio中为x64平台编译时不允许使用内联程序集(自VS 2005以来)。
我建议您使用内部函数。它使编译器为您处理CPU寄存器,并进行一些指令重新排序(优化器可以处理代码,而内联汇编从来不是这样)。
例如,我不知道是否是新的寄存器在两个x86中都可用和x64模式。
"新"寄存器xmm8
-xmm15
仅在64位模式下可用。
然而,请注意,新AVX寄存器的情况(适用于支持AVX的CPU和操作系统,例如Sandy Bridge CPU+Win7 SP1):
ymm0
-ymm7
可用于32位和64位模式。
ymm8
-ymm15
仅在64位模式下可用。