diff --git a/uppsrc/Core/Blit.h b/uppsrc/Core/Blit.h index cb6b99958..c618a137f 100644 --- a/uppsrc/Core/Blit.h +++ b/uppsrc/Core/Blit.h @@ -1,7 +1,4 @@ #ifdef CPU_X86 - -#include - void huge_memsetd(void *p, dword data, size_t len); void memsetd_l(dword *t, dword data, size_t len); diff --git a/uppsrc/Core/Core.h b/uppsrc/Core/Core.h index 64ee3f68d..c0495f170 100644 --- a/uppsrc/Core/Core.h +++ b/uppsrc/Core/Core.h @@ -61,6 +61,10 @@ #include #include +#ifdef CPU_X86 +#include +#endif + #if defined(PLATFORM_POSIX) #ifndef __USE_FILE_OFFSET64 #define __USE_FILE_OFFSET64 diff --git a/uppsrc/Core/Cpu.cpp b/uppsrc/Core/Cpu.cpp index 2127c6ce3..2fa203d57 100644 --- a/uppsrc/Core/Cpu.cpp +++ b/uppsrc/Core/Cpu.cpp @@ -14,6 +14,7 @@ static bool sHasMMX; static bool sHasSSE; static bool sHasSSE2; static bool sHasSSE3; +static bool sHasAVX; static bool sHypervisor; static void sCheckCPU() @@ -38,6 +39,7 @@ static void sCheckCPU() sHasSSE = edx & (1 << 25); sHasSSE2 = edx & (1 << 26); sHasSSE3 = ecx & 1; + sHasAVX = ecx & (1 << 28); sHypervisor = ecx & (1 << 31); } } @@ -50,6 +52,7 @@ bool CpuMMX() { sCheckCPU(); return sHasMMX; } bool CpuSSE() { sCheckCPU(); return sHasSSE; } bool CpuSSE2() { sCheckCPU(); return sHasSSE2; } bool CpuSSE3() { sCheckCPU(); return sHasSSE3; } +bool CpuAVX() { sCheckCPU(); return sHasAVX; } bool CpuHypervisor() { sCheckCPU(); return sHypervisor; } #ifdef PLATFORM_POSIX diff --git a/uppsrc/Core/Defs.h b/uppsrc/Core/Defs.h index e3fcddea7..91a941ef0 100644 --- a/uppsrc/Core/Defs.h +++ b/uppsrc/Core/Defs.h @@ -479,6 +479,7 @@ bool CpuSSE(); bool CpuSSE2(); bool CpuSSE3(); bool CpuHypervisor(); +bool CpuAVX(); #endif int CPU_Cores();