summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-30 21:48:58 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-30 21:48:58 +0000
commit332ac3ce21bc6864cec9ae5bea8076e03a20ecbc (patch)
tree552eadd0870b0fc7d94bb1a017031c4a9d2ad50d /loader
parent16699f54b565c9a74e35477fb5dafc374e662023 (diff)
downloadmpv-332ac3ce21bc6864cec9ae5bea8076e03a20ecbc.tar.bz2
mpv-332ac3ce21bc6864cec9ae5bea8076e03a20ecbc.tar.xz
support newly added PF defs (loader/wine/winnt.h)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2574 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/win32.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/loader/win32.c b/loader/win32.c
index 531fdc508d..c65f4dc418 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -726,6 +726,22 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
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 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
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 @@ void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
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);