dem*_*rge 5 c++ assembly sse visual-c++ cpuid
我正在尝试构建 VS2010 CRT 库的某些函数的稍微修改的版本,除了尝试访问可能保存指令集架构版本(ISA)的全局变量的部分外,一切都很好:
if (__isa_available > __ISA_AVAILABLE_SSE2)
{
// ...
}
else if (__isa_available == __ISA_AVAILABLE_SSE2)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在程序集文件中找到了它应该保存的值
__ISA_AVAILABLE_X86 equ 0
__ISA_AVAILABLE_SSE2 equ 1
__ISA_AVAILABLE_SSE42 equ 2
__ISA_AVAILABLE_AVX equ 3
Run Code Online (Sandbox Code Playgroud)
无法找到如何以及在何处__isa_available分配值(我已尝试在所有目录中查找文件......)
MSDN参考CPUID示例来确定指令集。问题是它使用了__asm块,而这些块在我的 x64 版本中是不允许的。
有谁知道如何快速分配正确的值__isa_available?