diff --git a/code/nel/src/misc/system_info.cpp b/code/nel/src/misc/system_info.cpp index c891f97e2..f621c4e68 100644 --- a/code/nel/src/misc/system_info.cpp +++ b/code/nel/src/misc/system_info.cpp @@ -955,19 +955,8 @@ static bool DetectSSE() // check OS support for SSE try { - #ifdef NL_OS_WINDOWS - #ifdef NL_NO_ASM unsigned int tmp = _mm_getcsr(); nlunreferenced(tmp); - #else - __asm - { - xorps xmm0, xmm0 // Streaming SIMD Extension - } - #endif // NL_NO_ASM - #elif NL_OS_UNIX - __asm__ __volatile__ ("xorps %xmm0, %xmm0;"); - #endif // NL_OS_UNIX } catch(...) { @@ -989,74 +978,10 @@ bool CSystemInfo::_HaveSSE = DetectSSE (); bool CSystemInfo::hasCPUID () { #ifdef NL_CPU_INTEL - uint32 result = 0; - #ifdef NL_OS_WINDOWS - #ifdef NL_NO_ASM - sint32 CPUInfo[4] = {-1}; - nlcpuid(CPUInfo, 0); - if (CPUInfo[3] != -1) result = 1; - #else - __asm - { - pushad - pushfd - // If ID bit of EFLAGS can change, then cpuid is available - pushfd - pop eax // Get EFLAG - mov ecx,eax - xor eax,0x200000 // Flip ID bit - push eax - popfd // Write EFLAGS - pushfd - pop eax // read back EFLAG - xor eax,ecx - je noCpuid // no flip -> no CPUID instr. - - popfd // restore state - popad - mov result, 1 - jmp CPUIDPresent - - noCpuid: - popfd // restore state - popad - mov result, 0 - CPUIDPresent: - } - #endif // NL_NO_ASM - #elif NL_OS_UNIX // NL_OS_WINDOWS - __asm__ __volatile__ ( - /* Save Register */ - "pushl %%ebp;" - "pushl %%ebx;" - "pushl %%edx;" - - /* Check if this CPU supports cpuid */ - "pushf;" - "pushf;" - "popl %%eax;" - "movl %%eax, %%ebx;" - "xorl $(1 << 21), %%eax;" // CPUID bit - "pushl %%eax;" - "popf;" - "pushf;" - "popl %%eax;" - "popf;" // Restore flags - "xorl %%ebx, %%eax;" - "jz NoCPUID;" - "movl $1, %0;" - "jmp CPUID;" - - "NoCPUID:;" - "movl $0, %0;" - "CPUID:;" - "popl %%edx;" - "popl %%ebx;" - "popl %%ebp;" - - :"=a"(result) - ); - #endif // NL_OS_UNIX + uint32 result = 0; + sint32 CPUInfo[4] = {-1}; + nlcpuid(CPUInfo, 0); + if (CPUInfo[3] != -1) result = 1; return result == 1; #else return false; @@ -1067,7 +992,7 @@ bool CSystemInfo::hasCPUID () uint32 CSystemInfo::getCPUID() { #ifdef NL_CPU_INTEL - if(hasCPUID()) + if (hasCPUID()) { uint32 result = 0; sint32 CPUInfo[4];