From 4d517922856791decfed475cdd536aedcaa25c30 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 21 Jul 2015 19:49:33 -0400 Subject: Common: Ported over Dolphin's code for x86 CPU capability detection. --- src/common/cpu_detect.h | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'src/common/cpu_detect.h') diff --git a/src/common/cpu_detect.h b/src/common/cpu_detect.h index b585f9608..19a2c25d6 100644 --- a/src/common/cpu_detect.h +++ b/src/common/cpu_detect.h @@ -3,11 +3,13 @@ // Refer to the license.txt file included. -// Detect the cpu, so we'll know which optimizations to use +// Detect the CPU, so we'll know which optimizations to use #pragma once #include +namespace Common { + enum CPUVendor { VENDOR_INTEL = 0, @@ -40,29 +42,28 @@ struct CPUInfo bool bLZCNT; bool bSSE4A; bool bAVX; + bool bAVX2; + bool bBMI1; + bool bBMI2; + bool bFMA; + bool bFMA4; bool bAES; + // FXSAVE/FXRSTOR + bool bFXSR; + bool bMOVBE; + // This flag indicates that the hardware supports some mode + // in which denormal inputs _and_ outputs are automatically set to (signed) zero. + bool bFlushToZero; bool bLAHFSAHF64; bool bLongMode; - - // ARM specific CPUInfo - bool bSwp; - bool bHalf; - bool bThumb; - bool bFastMult; - bool bVFP; - bool bEDSP; - bool bThumbEE; - bool bNEON; - bool bVFPv3; - bool bTLS; - bool bVFPv4; - bool bIDIVa; - bool bIDIVt; - bool bArmV7; // enable MOVT, MOVW etc + bool bAtom; // ARMv8 specific bool bFP; bool bASIMD; + bool bCRC32; + bool bSHA1; + bool bSHA2; // Call Detect() explicit CPUInfo(); @@ -76,3 +77,5 @@ private: }; extern CPUInfo cpu_info; + +} // namespace Common -- cgit v1.2.3 From a1942238f5046811833e9636c64f991905960732 Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 12 Aug 2015 00:19:20 -0400 Subject: Common: Move cpu_detect to x64 directory. --- src/common/cpu_detect.h | 81 ------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 src/common/cpu_detect.h (limited to 'src/common/cpu_detect.h') diff --git a/src/common/cpu_detect.h b/src/common/cpu_detect.h deleted file mode 100644 index 19a2c25d6..000000000 --- a/src/common/cpu_detect.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - - -// Detect the CPU, so we'll know which optimizations to use -#pragma once - -#include - -namespace Common { - -enum CPUVendor -{ - VENDOR_INTEL = 0, - VENDOR_AMD = 1, - VENDOR_ARM = 2, - VENDOR_OTHER = 3, -}; - -struct CPUInfo -{ - CPUVendor vendor; - - char cpu_string[0x21]; - char brand_string[0x41]; - bool OS64bit; - bool CPU64bit; - bool Mode64bit; - - bool HTT; - int num_cores; - int logical_cpu_count; - - bool bSSE; - bool bSSE2; - bool bSSE3; - bool bSSSE3; - bool bPOPCNT; - bool bSSE4_1; - bool bSSE4_2; - bool bLZCNT; - bool bSSE4A; - bool bAVX; - bool bAVX2; - bool bBMI1; - bool bBMI2; - bool bFMA; - bool bFMA4; - bool bAES; - // FXSAVE/FXRSTOR - bool bFXSR; - bool bMOVBE; - // This flag indicates that the hardware supports some mode - // in which denormal inputs _and_ outputs are automatically set to (signed) zero. - bool bFlushToZero; - bool bLAHFSAHF64; - bool bLongMode; - bool bAtom; - - // ARMv8 specific - bool bFP; - bool bASIMD; - bool bCRC32; - bool bSHA1; - bool bSHA2; - - // Call Detect() - explicit CPUInfo(); - - // Turn the cpu info into a string we can show - std::string Summarize(); - -private: - // Detects the various cpu features - void Detect(); -}; - -extern CPUInfo cpu_info; - -} // namespace Common -- cgit v1.2.3