[PATCH] msvcr110: Implement _libm_sse2_sqrt_precise

Martin Storsjo martin at martin.st
Wed Jan 8 08:11:45 CST 2014


---
 dlls/msvcr110/msvcr110.spec |  2 +-
 dlls/msvcrt/math.c          | 11 +++++++++++
 dlls/msvcrt/msvcrt.spec     |  1 +
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index ba588f9..771d454 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1394,7 +1394,7 @@
 @ cdecl -arch=i386  _libm_sse2_log_precise() msvcrt.__libm_sse2_log
 @ cdecl -arch=i386  _libm_sse2_pow_precise() msvcrt.__libm_sse2_pow
 @ cdecl -arch=i386  _libm_sse2_sin_precise() msvcrt.__libm_sse2_sin
-@ stub -arch=i386  _libm_sse2_sqrt_precise
+@ cdecl -arch=i386  _libm_sse2_sqrt_precise() msvcrt.__libm_sse2_sqrt
 @ cdecl -arch=i386  _libm_sse2_tan_precise() msvcrt.__libm_sse2_tan
 @ cdecl _loaddll(str) msvcrt._loaddll
 @ cdecl -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index 6bcc2b7..bb9f1ce 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -2164,6 +2164,17 @@ void __cdecl __libm_sse2_sinf(void)
 }
 
 /***********************************************************************
+ *		__libm_sse2_sqrt   (MSVCRT.@)
+ */
+void __cdecl __libm_sse2_sqrt(void)
+{
+    double d;
+    __asm__ __volatile__( "movq %%xmm0,%0" : "=m" (d) );
+    d = sqrt( d );
+    __asm__ __volatile__( "movq %0,%%xmm0" : : "m" (d) );
+}
+
+/***********************************************************************
  *		__libm_sse2_tan   (MSVCRT.@)
  */
 void __cdecl __libm_sse2_tan(void)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index e482784..81cff64 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -242,6 +242,7 @@
 @ cdecl -arch=i386 __libm_sse2_powf()
 @ cdecl -arch=i386 __libm_sse2_sin()
 @ cdecl -arch=i386 __libm_sse2_sinf()
+@ cdecl -arch=i386 __libm_sse2_sqrt()
 @ cdecl -arch=i386 __libm_sse2_tan()
 @ cdecl -arch=i386 __libm_sse2_tanf()
 @ extern __mb_cur_max MSVCRT___mb_cur_max
-- 
1.8.1.2




More information about the wine-patches mailing list