184 asm volatile(
"cpuid" :
"=a"(out->
eax),
"=b"(out->
ebx),
"=c"(out->
ecx),
"=d"(out->
edx) :
"a"(eax),
"c"(ecx));
209 info->brandClflushApicid = out.
ebx;
static cpuid_instruction_sets_t cpuid_detect_instruction_sets(void)
Helper to detect supported instruction sets.
static void cpuid(cpuid_input_eax_t eax, cpuid_input_ecx_t ecx, cpuid_output_t *out)
CPUID instruction.
cpuid_ecx_features_t
ECX feature flags.
static void cpuid_feature_info(cpuid_feature_info_t *info)
Wrapper to get CPU feature information.
cpuid_instruction_sets_t
Supported CPU instruction sets.
static void cpuid_extended_feature_info(cpuid_extended_feature_info_t *info)
Wrapper to get CPU extended feature information.
cpuid_input_ecx_t
Input ECX values.
cpuid_ebx_features_t
EBX feature flags.
cpuid_input_eax_t
Input EAX values.
@ CPUID_ECX_XTPR_UPDATE_CONTROL
@ CPUID_INSTRUCTION_SET_NONE
@ CPUID_INSTRUCTION_SET_SSSE3
@ CPUID_INSTRUCTION_SET_SSE2
@ CPUID_INSTRUCTION_SET_SSE4_2
@ CPUID_INSTRUCTION_SET_SSE3
@ CPUID_INSTRUCTION_SET_AVX512
@ CPUID_INSTRUCTION_SET_AVX
@ CPUID_INSTRUCTION_SET_SSE4_1
@ CPUID_INSTRUCTION_SET_SSE
@ CPUID_INSTRUCTION_SET_AVX2
@ CPUID_EBX_FPU_CS_DS_DEPR
@ CPUID_EBX_FDP_EXCPTN_ONLY
@ CPUID_EAX_EXTENDED_FEATURE_INFO
CPU extended feature information structure.
cpuid_ebx_features_t featuresEbx
CPU feature information structure.
cpuid_ecx_features_t featuresEcx
cpuid_edx_features_t featuresEdx
uint32_t brandClflushApicid
Output structure for CPUID instruction.