# HG changeset patch # User alex # Date 1007917495 0 # Node ID 1261ff74abd9f80d702190c3659e9adbd9c6b8a8 # Parent c4ca766a2d057652163c8e7db1f046118ace0b05 updated cpudetection diff -r c4ca766a2d05 -r 1261ff74abd9 loader/win32.c --- a/loader/win32.c Sun Dec 09 17:03:04 2001 +0000 +++ b/loader/win32.c Sun Dec 09 17:04:55 2001 +0000 @@ -864,7 +864,6 @@ cachedsi.wProcessorLevel = 5; /* pentium */ cachedsi.wProcessorRevision = 0x0101; -#if 1 /* mplayer's way to detect PF's */ { #include "../cpudetect.h" @@ -876,9 +875,30 @@ 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 @@ 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 @@ */ cachedsi.dwNumberOfProcessors=1; } -#endif /* __FreeBSD__ */ +#endif /* __linux__ */ + cache = 1; memcpy(si,&cachedsi,sizeof(*si)); DumpSystemInfo(si);