36 extern "C" void __cpuid(
void *eax,
void *ebx,
void *ecx,
void *edx)
noexcept;
68 *static_cast<cpuid::value_type *>(ebx) =
g_regs.ebx;
70 *static_cast<cpuid::value_type *>(edx) =
g_regs.edx;
74 intrinsics_ut::test_cpuid_x64_cpuid()
90 intrinsics_ut::test_cpuid_x64_cpuid_eax()
98 intrinsics_ut::test_cpuid_x64_cpuid_ebx()
106 intrinsics_ut::test_cpuid_x64_cpuid_ecx()
114 intrinsics_ut::test_cpuid_x64_cpuid_edx()
122 intrinsics_ut::test_cpuid_x64_cpuid_addr_size_phys()
129 intrinsics_ut::test_cpuid_x64_cpuid_addr_size_linear()
136 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_sse3()
146 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_pclmulqdq()
156 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_dtes64()
166 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_monitor()
176 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_ds_cpl()
186 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_vmx()
196 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_smx()
206 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_eist()
216 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_tm2()
226 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_ssse3()
236 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_cnxt_id()
246 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_sdbg()
256 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_fma()
266 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_cmpxchg16b()
276 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_xtpr_update_control()
286 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_pdcm()
296 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_pcid()
306 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_dca()
316 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_sse41()
326 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_sse42()
336 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_x2apic()
346 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_movbe()
356 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_popcnt()
366 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_tsc_deadline()
376 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_aesni()
386 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_xsave()
396 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_osxsave()
406 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_avx()
416 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_f16c()
426 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_rdrand()
436 intrinsics_ut::test_cpuid_x64_cpuid_feature_information_ecx_dump()
443 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_fsgsbase()
448 g_regs.ebx = ~(0x1U << 0);
453 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_ia32_tsc_adjust()
458 g_regs.ebx = ~(0x1U << 1);
463 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_sgx()
468 g_regs.ebx = ~(0x1U << 2);
473 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_bmi1()
478 g_regs.ebx = ~(0x1U << 3);
483 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_hle()
488 g_regs.ebx = ~(0x1U << 4);
493 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_avx2()
498 g_regs.ebx = ~(0x1U << 5);
503 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_fdp_excptn_only()
508 g_regs.ebx = ~(0x1U << 6);
513 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_smep()
518 g_regs.ebx = ~(0x1U << 7);
523 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_bmi2()
528 g_regs.ebx = ~(0x1U << 8);
533 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_enhanced_rep()
538 g_regs.ebx = ~(0x1U << 9);
543 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_invpcid()
548 g_regs.ebx = ~(0x1U << 10);
553 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_rtm()
558 g_regs.ebx = ~(0x1U << 11);
563 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_rdt_m()
568 g_regs.ebx = ~(0x1U << 12);
573 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_depreciated_fpu_cs_ds()
578 g_regs.ebx = ~(0x1U << 13);
583 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_mpx()
588 g_regs.ebx = ~(0x1U << 14);
593 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_rdt_a()
598 g_regs.ebx = ~(0x1U << 15);
603 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_rdseed()
608 g_regs.ebx = ~(0x1U << 18);
613 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_adx()
618 g_regs.ebx = ~(0x1U << 19);
623 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_smap()
628 g_regs.ebx = ~(0x1U << 20);
633 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_clflushopt()
638 g_regs.ebx = ~(0x1U << 23);
643 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_clwb()
648 g_regs.ebx = ~(0x1U << 24);
653 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_processor_trace()
658 g_regs.ebx = ~(0x1U << 25);
663 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_sha()
668 g_regs.ebx = ~(0x1U << 29);
673 intrinsics_ut::test_cpuid_x64_cpuid_extended_feature_flags_subleaf0_ebx_dump()
680 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_eax_version_id()
687 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_eax_gppmc_count()
694 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_eax_gppmc_bit_width()
701 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_eax_ebx_enumeration_length()
708 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_core_cycle_event()
718 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_instr_retired_event()
728 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_reference_cycles_event()
738 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_llc_reference_event()
748 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_llc_misses_event()
758 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_branch_instr_retired_event()
768 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_ebx_branch_mispredict_retired_event()
778 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_edx_ffpmc_count()
785 intrinsics_ut::test_cpuid_x64_cpuid_arch_perf_monitoring_edx_ffpmc_bit_width()
uint32_t __cpuid_eax(uint32_t val) noexcept
uint32_t __cpuid_ecx(uint32_t val) noexcept
auto is_available() noexcept
auto is_available() noexcept
void __cpuid(void *eax, void *ebx, void *ecx, void *edx) noexcept
std::map< cpuid::field_type, cpuid::value_type > g_edx_cpuid
void uint64_t uint64_t uint64_t *rdx noexcept
auto is_available() noexcept
constexpr const auto addr
std::map< cpuid::field_type, cpuid::value_type > g_eax_cpuid
std::map< cpuid::field_type, cpuid::value_type > g_ecx_cpuid
auto get(T1 eax, T2 ebx, T3 ecx, T4 edx) noexcept
uint32_t __cpuid_edx(uint32_t val) noexcept
std::map< cpuid::field_type, cpuid::value_type > g_ebx_cpuid
auto is_available() noexcept
auto is_available() noexcept
auto is_available() noexcept
auto is_available() noexcept
uint32_t __cpuid_ebx(uint32_t val) noexcept