2011-06-17 322 views
0

我的问题很简短。是否有可能从Visual Studio 2010内联汇编程序使用新的sse寄存器?如果是这样,那么还有其他条件必须满足吗?我不知道,例如,新的寄存器在x86和x64模式下都可用。使用新的sse寄存器xmm8 - xmm15

回答

3

在Visual Studio中编译x64平台时不允许行内汇编(自VS 2005以来)。我建议你使用intrinsics instead。它使编译器为你处理CPU寄存器,并执行一些指令重新排序(优化器得到处理代码,内联汇编永远不会这样)。

+3

+1用于向汇编器推荐内在函数。还要注意,xmm8..xmm15仅适用于x86-64代码。 – 2011-06-17 07:43:59

2

至于你的第二个问题:

我不知道,例如,如果新 寄存器两个86 和x64模式可供选择。

'新' 寄存器xmm8 - xmm15在64位模式下可用。

注意然而,随着新的AVX寄存器(支持AVX用于CPU和操作系统,例如距桥CPU + Win7的SP1)的情况:

ymm0 - ymm7是在32位和64位可用模式。

ymm8 - ymm15仅在64位模式下可用。

+0

与新的AVX-512相同,只有低8位寄存器可用于32位模式,所以如果您不想“浪费”剩余的24个寄存器,则需要转为64位 – 2014-03-13 13:52:11