Merge pull request #21 from encounter/sse4a

Add SSE4a CPUID check
This commit is contained in:
Phillip Stephens 2019-12-10 20:48:34 -08:00 committed by GitHub
commit c70243ff32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -54,7 +54,8 @@ void detectCPU() {
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 4) = regs[3];
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 8) = regs[2];
getCpuInfo(0x80000000, regs);
if (regs[0] >= 0x80000004) {
int maxExtended = regs[0];
if (maxExtended >= 0x80000004) {
for (unsigned int i = 0x80000002; i <= 0x80000004; i++) {
getCpuInfo(i, regs);
// Interpret CPU brand string and cache information.
@ -84,6 +85,11 @@ void detectCPU() {
memset((bool*)&g_cpuFeatures.AVX2, ((regs[1] & 0x00000020) != 0), 1);
}
if (maxExtended >= 0x80000001) {
getCpuInfo(0x80000001, regs);
memset((bool*)&g_cpuFeatures.SSE4a, ((regs[2] & (1 << 6)) != 0), 1);
}
isCPUInit = true;
#endif
}