=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: d3d9: Implement FPUSETUP for msvc.
Alexandre Julliard
julliard at winehq.org
Mon Sep 26 16:15:12 CDT 2011
Module: wine
Branch: master
Commit: e1d92059ea193ad8852de737748cd69ce10a5712
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e1d92059ea193ad8852de737748cd69ce10a5712
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Sat Sep 24 12:42:14 2011 +0200
d3d9: Implement FPUSETUP for msvc.
---
dlls/d3d9/device.c | 5 +++++
dlls/d3d9/tests/device.c | 11 ++++++++++-
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 5433738..2c67391 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -3306,6 +3306,11 @@ static void setup_fpu(void)
__asm__ volatile ("fnstcw %0" : "=m" (cw));
cw = (cw & ~0xf3f) | 0x3f;
__asm__ volatile ("fldcw %0" : : "m" (cw));
+#elif defined(__i386__) && defined(_MSC_VER)
+ WORD cw;
+ __asm fnstcw cw;
+ cw = (cw & ~0xf3f) | 0x3f;
+ __asm fldcw cw;
#else
FIXME("FPU setup not implemented for this platform.\n");
#endif
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index 625dce9..482f5d4 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -2913,8 +2913,13 @@ cleanup:
static inline void set_fpu_cw(WORD cw)
{
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#define D3D9_TEST_SET_FPU_CW 1
__asm__ volatile ("fnclex");
__asm__ volatile ("fldcw %0" : : "m" (cw));
+#elif defined(__i386__) && defined(_MSC_VER)
+#define D3D9_TEST_SET_FPU_CW 1
+ __asm fnclex;
+ __asm fldcw cw;
#endif
}
@@ -2922,14 +2927,18 @@ static inline WORD get_fpu_cw(void)
{
WORD cw = 0;
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#define D3D9_TEST_GET_FPU_CW 1
__asm__ volatile ("fnstcw %0" : "=m" (cw));
+#elif defined(__i386__) && defined(_MSC_VER)
+#define D3D9_TEST_GET_FPU_CW 1
+ __asm fnstcw cw;
#endif
return cw;
}
static void test_fpu_setup(void)
{
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#if defined(D3D9_TEST_SET_FPU_CW) && defined(D3D9_TEST_GET_FPU_CW)
D3DPRESENT_PARAMETERS present_parameters;
IDirect3DDevice9 *device;
HWND window = NULL;
More information about the wine-cvs
mailing list