mirror of https://github.com/AxioDL/zeus.git
Add SSE4a CPUID check
This commit is contained in:
parent
c5d90a5d5e
commit
c3671245e2
|
@ -49,7 +49,8 @@ void detectCPU() {
|
||||||
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 4) = regs[3];
|
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 4) = regs[3];
|
||||||
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 8) = regs[2];
|
*reinterpret_cast<int*>((char*)g_cpuFeatures.cpuVendor + 8) = regs[2];
|
||||||
getCpuInfo(0x80000000, regs);
|
getCpuInfo(0x80000000, regs);
|
||||||
if (regs[0] >= 0x80000004) {
|
int maxExtended = regs[0];
|
||||||
|
if (maxExtended >= 0x80000004) {
|
||||||
for (unsigned int i = 0x80000002; i <= 0x80000004; i++) {
|
for (unsigned int i = 0x80000002; i <= 0x80000004; i++) {
|
||||||
getCpuInfo(i, regs);
|
getCpuInfo(i, regs);
|
||||||
// Interpret CPU brand string and cache information.
|
// Interpret CPU brand string and cache information.
|
||||||
|
@ -79,6 +80,11 @@ void detectCPU() {
|
||||||
memset((bool*)&g_cpuFeatures.AVX2, ((regs[1] & 0x00000020) != 0), 1);
|
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;
|
isCPUInit = true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue