mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-01-23 23:31:12 +01:00
36 lines
737 B
C++
36 lines
737 B
C++
|
|
#ifdef __GNUC__
|
|
#define ATTRIBUTE_AVX2 __attribute__((target("avx2")))
|
|
#define ATTRIBUTE_SSE41 __attribute__((target("sse4.1")))
|
|
#define ATTRIBUTE_AESNI __attribute__((target("aes")))
|
|
#else
|
|
#define ATTRIBUTE_AVX2
|
|
#define ATTRIBUTE_SSE41
|
|
#define ATTRIBUTE_AESNI
|
|
#endif
|
|
|
|
class CPUFeaturesImpl
|
|
{
|
|
public:
|
|
CPUFeaturesImpl();
|
|
|
|
std::string GetCPUName(); // empty if not available
|
|
std::string GetCommaSeparatedExtensionList();
|
|
|
|
struct
|
|
{
|
|
bool ssse3{ false };
|
|
bool sse4_1{ false };
|
|
bool avx{ false };
|
|
bool avx2{ false };
|
|
bool lzcnt{ false };
|
|
bool movbe{ false };
|
|
bool bmi2{ false };
|
|
bool aesni{ false };
|
|
bool invariant_tsc{ false };
|
|
}x86;
|
|
private:
|
|
char m_cpuBrandName[0x40]{ 0 };
|
|
};
|
|
|
|
extern CPUFeaturesImpl g_CPUFeatures; |