Thomas Faber : kernel32/tests: Run test_thread_fpu_cw on x86 MSVC builds.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Sep 2 10:23:15 CDT 2015


Module: wine
Branch: master
Commit: 9165dbbffcffc959e148be633d2b4693cec006b2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9165dbbffcffc959e148be633d2b4693cec006b2

Author: Thomas Faber <thomas.faber at reactos.org>
Date:   Tue Sep  1 16:14:54 2015 +0200

kernel32/tests: Run test_thread_fpu_cw on x86 MSVC builds.

---

 dlls/kernel32/tests/thread.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index 2e1614c..d0fbfa4 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -1408,16 +1408,25 @@ static void test_ThreadErrorMode(void)
     pSetThreadErrorMode(oldmode, NULL);
 }
 
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#if (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) || (defined(_MSC_VER) && defined(__i386__))
 static inline void set_fpu_cw(WORD cw)
 {
+#ifdef _MSC_VER
+    __asm { fnclex }
+    __asm { fldcw [cw] }
+#else
     __asm__ volatile ("fnclex; fldcw %0" : : "m" (cw));
+#endif
 }
 
 static inline WORD get_fpu_cw(void)
 {
     WORD cw = 0;
+#ifdef _MSC_VER
+    __asm { fnstcw [cw] }
+#else
     __asm__ volatile ("fnstcw %0" : "=m" (cw));
+#endif
     return cw;
 }
 
@@ -1888,7 +1897,7 @@ START_TEST(thread)
    test_RegisterWaitForSingleObject();
    test_TLS();
    test_ThreadErrorMode();
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#if (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) || (defined(_MSC_VER) && defined(__i386__))
    test_thread_fpu_cw();
 #endif
    test_thread_actctx();




More information about the wine-cvs mailing list