# HG changeset patch # User alex # Date 1004478538 0 # Node ID 9009b6d2429691eb09b182951ecb86770d5e4923 # Parent f2353173d52c1e91532e128d0d87dd91b1c6312d support newly added PF defs (loader/wine/winnt.h) diff -r f2353173d52c -r 9009b6d24296 loader/win32.c --- a/loader/win32.c Tue Oct 30 21:33:01 2001 +0000 +++ b/loader/win32.c Tue Oct 30 21:48:58 2001 +0000 @@ -726,6 +726,22 @@ cachedsi.dwAllocationGranularity = 0x10000; cachedsi.wProcessorLevel = 5; /* pentium */ cachedsi.wProcessorRevision = 0x0101; + cachedsi.dwNumberOfProcessors = 1; + +#if 1 + /* mplayer's way to detect PF's */ + { + #include "../cpudetect.h" + extern CpuCaps gCpuCaps; + + if (gCpuCaps.hasMMX) + PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; + if (gCpuCaps.hasSSE) + PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; + if (gCpuCaps.has3DNow) + PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; + } +#endif #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__) do_cpuid(1, regs); @@ -751,6 +767,10 @@ PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; if (regs[3] & (1 << 23)) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; + if (regs[3] & (1 << 25)) + PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; + if (regs[3] & (1 << 31)) + PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; cachedsi.dwNumberOfProcessors=1; #else { @@ -864,7 +884,12 @@ PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; if (strstr(value,"mmx")) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; - + if (strstr(value,"tsc")) + PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = TRUE; + if (strstr(value,"xmm")) + PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; + if (strstr(value,"3dnow")) + PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; } } fclose (f);