From c74f6ca570ba1f5209888f0d1ed92b0ed29f0a8b Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 25 Jan 2011 22:12:16 +0100 Subject: [PATCH] msvcrt: Implemented _fpreset for SSE2 and x86_64. --- dlls/msvcrt/math.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index 6755fbbf40c..306ad1d0076 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -1111,10 +1111,16 @@ int CDECL _finite(double num) */ void CDECL _fpreset(void) { -#if defined(__GNUC__) && defined(__i386__) - __asm__ __volatile__( "fninit" ); +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + const unsigned int x86_cw = 0x27f; + __asm__ __volatile__( "fninit; fldcw %0" : : "m" (x86_cw) ); + if (sse2_supported) + { + const unsigned long sse2_cw = 0x1f80; + __asm__ __volatile__( "ldmxcsr %0" : : "m" (sse2_cw) ); + } #else - FIXME(":Not Implemented!\n"); + FIXME( "not implemented\n" ); #endif }