Я пытаюсь построить слегка модифицированные версии некоторых функций библиотеки CRT VS2010, все хорошо, за исключением частей, где она пытается получить доступ к глобальной переменной, которая предположительно содержит версию архитектуры набора команд (ISA):
if (__isa_available > __ISA_AVAILABLE_SSE2)
{
// ...
}
else if (__isa_available == __ISA_AVAILABLE_SSE2)
{
// ...
}
Значения, которые он должен содержать, я нашел в файле сборки
__ISA_AVAILABLE_X86 equ 0
__ISA_AVAILABLE_SSE2 equ 1
__ISA_AVAILABLE_SSE42 equ 2
__ISA_AVAILABLE_AVX equ 3
Как и где __isa_available
присваивается значение, нигде не найдено (я пробовал находить файлы во всех моих каталогах ...)
MSDN использует пример CPUID для определения набора команд. Проблема в том, что он использует блоки __asm
, и они не разрешены в моей сборке x64.
Кто-нибудь знает, как быстро назначить правильное значение для __isa_available
?