Detect cpu features AVX and AES, both are present on Sandy Bridge. For future use :P

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6925 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard 2011-01-26 21:27:26 +00:00
parent d7e877bb0b
commit 48b7658c8a
2 changed files with 8 additions and 2 deletions

View File

@ -144,10 +144,12 @@ void CPUInfo::Detect()
} }
if ((cpu_id[3] >> 25) & 1) bSSE = true; if ((cpu_id[3] >> 25) & 1) bSSE = true;
if ((cpu_id[3] >> 26) & 1) bSSE2 = true; if ((cpu_id[3] >> 26) & 1) bSSE2 = true;
if (cpu_id[2] & 1) bSSE3 = true; if ((cpu_id[2]) & 1) bSSE3 = true;
if ((cpu_id[2] >> 9) & 1) bSSSE3 = true; if ((cpu_id[2] >> 9) & 1) bSSSE3 = true;
if ((cpu_id[2] >> 19) & 1) bSSE4_1 = true; if ((cpu_id[2] >> 19) & 1) bSSE4_1 = true;
if ((cpu_id[2] >> 20) & 1) bSSE4_2 = true; if ((cpu_id[2] >> 20) & 1) bSSE4_2 = true;
if ((cpu_id[2] >> 29) & 1) bAVX = true;
if ((cpu_id[2] >> 25) & 1) bAES = true;
} }
if (max_ex_fn >= 0x80000004) { if (max_ex_fn >= 0x80000004) {
// Extract brand string // Extract brand string
@ -208,6 +210,8 @@ std::string CPUInfo::Summarize()
if (bSSSE3) sum += ", SSSE3"; if (bSSSE3) sum += ", SSSE3";
if (bSSE4_1) sum += ", SSE4.1"; if (bSSE4_1) sum += ", SSE4.1";
if (bSSE4_2) sum += ", SSE4.2"; if (bSSE4_2) sum += ", SSE4.2";
if (bAVX) sum += ", AVX";
if (bAES) sum += ", AES";
if (bLongMode) sum += ", 64-bit support"; if (bLongMode) sum += ", 64-bit support";
return sum; return sum;
} }

View File

@ -51,6 +51,8 @@ struct CPUInfo
bool bSSE4_2; bool bSSE4_2;
bool bLZCNT; bool bLZCNT;
bool bSSE4A; bool bSSE4A;
bool bAVX;
bool bAES;
bool bLAHFSAHF64; bool bLAHFSAHF64;
bool bLongMode; bool bLongMode;
bool HTT; bool HTT;