From aed9ebd7d66fb3c4e9954c5d0759c2446b820ed3 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 6 Mar 2021 10:24:33 +0100 Subject: Added 0F A2 cpuid opcode --- src/include/cpu_info.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/include/my_cpuid.h | 8 +++++ 2 files changed, 102 insertions(+) create mode 100755 src/include/cpu_info.h create mode 100644 src/include/my_cpuid.h (limited to 'src/include') diff --git a/src/include/cpu_info.h b/src/include/cpu_info.h new file mode 100755 index 00000000..18c4a1b9 --- /dev/null +++ b/src/include/cpu_info.h @@ -0,0 +1,94 @@ +#ifndef __CPU_INFO__H_ +#define __CPU_INFO__H_ +enum ProcessorVendors { + VENDOR_INTEL = 1, + VENDOR_AMD, + VENDOR_OTHER, + VENDOR_MAX +}; + +enum ProcessorTypes { + INTEL_ATOM = 1, + INTEL_CORE2, + INTEL_COREI7, + AMDFAM10H, + AMDFAM15H, + INTEL_i386, + INTEL_i486, + INTEL_PENTIUM, + INTEL_PENTIUM_PRO, + INTEL_PENTIUM_II, + INTEL_PENTIUM_III, + INTEL_PENTIUM_IV, + INTEL_PENTIUM_M, + INTEL_CORE_DUO, + INTEL_XEONPHI, + INTEL_X86_64, + INTEL_NOCONA, + INTEL_PRESCOTT, + AMD_i486, + AMDPENTIUM, + AMDATHLON, + AMDFAM14H, + AMDFAM16H, + CPU_TYPE_MAX +}; + +enum ProcessorSubtypes { + INTEL_COREI7_NEHALEM = 1, + INTEL_COREI7_WESTMERE, + INTEL_COREI7_SANDYBRIDGE, + AMDFAM10H_BARCELONA, + AMDFAM10H_SHANGHAI, + AMDFAM10H_ISTANBUL, + AMDFAM15H_BDVER1, + AMDFAM15H_BDVER2, + INTEL_PENTIUM_MMX, + INTEL_CORE2_65, + INTEL_CORE2_45, + INTEL_COREI7_IVYBRIDGE, + INTEL_COREI7_HASWELL, + INTEL_COREI7_BROADWELL, + INTEL_COREI7_SKYLAKE, + INTEL_COREI7_SKYLAKE_AVX512, + INTEL_ATOM_BONNELL, + INTEL_ATOM_SILVERMONT, + INTEL_KNIGHTS_LANDING, + AMDPENTIUM_K6, + AMDPENTIUM_K62, + AMDPENTIUM_K63, + AMDPENTIUM_GEODE, + AMDATHLON_TBIRD, + AMDATHLON_MP, + AMDATHLON_XP, + AMDATHLON_K8SSE3, + AMDATHLON_OPTERON, + AMDATHLON_FX, + AMDATHLON_64, + AMD_BTVER1, + AMD_BTVER2, + AMDFAM15H_BDVER3, + AMDFAM15H_BDVER4, + CPU_SUBTYPE_MAX +}; + +enum ProcessorFeatures { + FEATURE_CMOV = 0, + FEATURE_MMX, + FEATURE_POPCNT, + FEATURE_SSE, + FEATURE_SSE2, + FEATURE_SSE3, + FEATURE_SSSE3, + FEATURE_SSE4_1, + FEATURE_SSE4_2, + FEATURE_AVX, + FEATURE_AVX2, + FEATURE_AVX512, + FEATURE_AVX512SAVE, + FEATURE_MOVBE, + FEATURE_ADX, + FEATURE_EM64T +}; + +#endif \ No newline at end of file diff --git a/src/include/my_cpuid.h b/src/include/my_cpuid.h new file mode 100644 index 00000000..53792ea0 --- /dev/null +++ b/src/include/my_cpuid.h @@ -0,0 +1,8 @@ +#ifndef __MY_CPUID_H__ +#define __MY_CPUID_H__ +#include +typedef struct x64emu_s x64emu_t; + +void my_cpuid(x64emu_t* emu, uint32_t tmp32u); + +#endif //__MY_CPUID_H__ \ No newline at end of file -- cgit 1.4.1