пишу программу которая определяет наличие AVX инструкции
bool is_set_N_bit_in_ECX(int bit)
{
bool result;
register long long a asm («eax») = 1;
register long long b asm («ebx») = 0;
register long long c asm («ecx») = 0;
register long long d asm («edx») = 0;
asm («cpuid»);
if ((c & (1 << bit)) >> bit == 1)
result = true;
else
result = false;
return result;
}
при компиляции выдается такое:
In static member function ‘static bool is_set_N_bit_in_ECX(int)’:
ошибка: не найден регистр класса ‘CREG’ для выталкивания в память
ошибка: это RTL-инструкция:
(insn 13 12 14 2 file.cpp:54 (parallel [
(set (reg:SI 0 ax [orig:58 D.23638 ] [58])
(ashift:SI (reg:SI 1 dx [66])
(subreg:QI (reg:SI 0 ax [65]) 0)))
(clobber (reg:CC 17 flags))
]) 493 {*ashlsi3_1} (expr_list:REG_DEAD (reg:SI 1 dx [66])
(expr_list:REG_DEAD (reg:SI 0 ax [65])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))))
что не так написал ?