summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-02 14:26:42 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-10-02 14:26:42 +0000
commita669b97dd242ace2c76fdcebf3d5e26ee321602e (patch)
tree5149b878ebfa921c8e41e5a78c4e618fe976ddd0 /loader
parentde89639c76e13422a5c871d336441f8a723a5768 (diff)
downloadmpv-a669b97dd242ace2c76fdcebf3d5e26ee321602e.tar.bz2
mpv-a669b97dd242ace2c76fdcebf3d5e26ee321602e.tar.xz
Several minor fixes: Correctly advertise SSE and SSE2 instruction sets,
add MSVCRT._winver and KERNEL32.GetThreadPriority exports. Should fix some crashes esp. with wmv9dmo.dll git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16633 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/win32.c15
-rw-r--r--loader/wine/winnt.h1
2 files changed, 15 insertions, 1 deletions
diff --git a/loader/win32.c b/loader/win32.c
index 5495f3418f..55524a5efe 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -968,6 +968,8 @@ static void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
if (gCpuCaps.hasSSE)
PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE;
+ if (gCpuCaps.hasSSE2)
+ PF[PF_XMMI64_INSTRUCTIONS_AVAILABLE] = TRUE;
if (gCpuCaps.has3DNow)
PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE;
@@ -1141,8 +1143,10 @@ static void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
if (strstr(value,"tsc"))
PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = TRUE;
- if (strstr(value,"xmm"))
+ if (strstr(value,"xmm") || strstr(value,"sse"))
PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE;
+ if (strstr(value,"sse2"))
+ PF[PF_XMMI64_INSTRUCTIONS_AVAILABLE] = TRUE;
if (strstr(value,"3dnow"))
PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE;
}
@@ -3322,6 +3326,7 @@ static int WINAPI expIsRectEmpty(CONST RECT *lprc)
}
static int _adjust_fdiv=0; //what's this? - used to adjust division
+static int _winver = 0x510; // windows version
@@ -4528,6 +4533,12 @@ static void WINAPI expGlobalMemoryStatus(
lpmem->dwAvailPageFile++;
}
+static INT WINAPI expGetThreadPriority(HANDLE hthread)
+{
+ dbgprintf("GetThreadPriority(%p)\n",hthread);
+ return 0;
+}
+
/**********************************************************************
* SetThreadPriority [KERNEL32.@] Sets priority for thread.
*
@@ -4927,6 +4938,7 @@ struct exports exp_kernel32[]=
FF(SetThreadAffinityMask,-1)
FF(GetCurrentProcessId,-1)
FF(GlobalMemoryStatus,-1)
+ FF(GetThreadPriority,-1)
FF(SetThreadPriority,-1)
FF(ExitProcess,-1)
{"LoadLibraryExA", -1, (void*)&LoadLibraryExA},
@@ -4942,6 +4954,7 @@ struct exports exp_msvcrt[]={
{"??3@YAXPAX@Z", -1, expdelete},
{"??2@YAPAXI@Z", -1, expnew},
{"_adjust_fdiv", -1, (void*)&_adjust_fdiv},
+ {"_winver",-1,(void*)&_winver},
FF(strrchr, -1)
FF(strchr, -1)
FF(strlen, -1)
diff --git a/loader/wine/winnt.h b/loader/wine/winnt.h
index 401c39889c..0d1d950486 100644
--- a/loader/wine/winnt.h
+++ b/loader/wine/winnt.h
@@ -136,6 +136,7 @@ typedef struct _SINGLE_LIST_ENTRY {
#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
#define PF_AMD3D_INSTRUCTIONS_AVAILABLE 7
#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
+#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
/* The Win32 register context */