From 55a015e6cfe1d15e5ecbe7cb66e38d9af388174b Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 9 Dec 2001 17:04:55 +0000 Subject: updated cpudetection git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3405 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/win32.c | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'loader/win32.c') diff --git a/loader/win32.c b/loader/win32.c index 12e8852948..90197aad5e 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -864,7 +864,6 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si) cachedsi.wProcessorLevel = 5; /* pentium */ cachedsi.wProcessorRevision = 0x0101; -#if 1 /* mplayer's way to detect PF's */ { #include "../cpudetect.h" @@ -876,9 +875,30 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si) PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; if (gCpuCaps.has3DNow) PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; + + switch(gCpuCaps.cpuType) + { + case CPUTYPE_I686: + case CPUTYPE_I586: + cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; + cachedsi.wProcessorLevel = 5; + break; + case CPUTYPE_I486: + cachedsi.dwProcessorType = PROCESSOR_INTEL_486; + cachedsi.wProcessorLevel = 4; + break; + case CPUTYPE_I386: + default: + cachedsi.dwProcessorType = PROCESSOR_INTEL_386; + cachedsi.wProcessorLevel = 3; + break; + } + cachedsi.wProcessorRevision = gCpuCaps.cpuStepping; + cachedsi.dwNumberOfProcessors = 1; /* hardcoded */ } -#endif +/* disable cpuid based detection (mplayer's cpudetect.c does this - see above) */ +#if 0 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__) do_cpuid(1, regs); switch ((regs[0] >> 8) & 0xf) { // cpu family @@ -908,7 +928,12 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si) if (regs[3] & (1 << 31)) PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; cachedsi.dwNumberOfProcessors=1; -#else +#endif +#endif /* if 0 */ + +/* linux detection enabled (based on proc/cpuinfo) for checking + fdiv_bug and fpu emulation flags -- alex */ +#ifdef __linux__ { char buf[20]; char line[200]; @@ -1037,7 +1062,8 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si) */ cachedsi.dwNumberOfProcessors=1; } -#endif /* __FreeBSD__ */ +#endif /* __linux__ */ + cache = 1; memcpy(si,&cachedsi,sizeof(*si)); DumpSystemInfo(si); -- cgit v1.2.3