Martin Storsjo : msvcrt: Implement the fdim functions.

Alexandre Julliard julliard at winehq.org
Fri Aug 2 14:26:30 CDT 2019


Module: wine
Branch: master
Commit: 83a95b8fcf90a2a9d23bdfebe1a18cb8f729de1b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=83a95b8fcf90a2a9d23bdfebe1a18cb8f729de1b

Author: Martin Storsjo <martin at martin.st>
Date:   Wed Jul 31 00:08:52 2019 +0300

msvcrt: Implement the fdim functions.

Signed-off-by: Martin Storsjo <martin at martin.st>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 .../api-ms-win-crt-math-l1-1-0.spec                |  6 +++---
 dlls/msvcr120/msvcr120.spec                        |  6 +++---
 dlls/msvcr120_app/msvcr120_app.spec                |  6 +++---
 dlls/msvcrt/math.c                                 | 24 ++++++++++++++++++++++
 dlls/ucrtbase/ucrtbase.spec                        |  6 +++---
 5 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
index 9eb3059..73967ea 100644
--- a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
@@ -236,9 +236,9 @@
 @ cdecl expm1l(double) ucrtbase.expm1l
 @ cdecl fabs(double) ucrtbase.fabs
 @ cdecl -arch=arm,arm64 fabsf(float) ucrtbase.fabsf
-@ stub fdim
-@ stub fdimf
-@ stub fdiml
+@ cdecl fdim(double double) ucrtbase.fdim
+@ cdecl fdimf(float float) ucrtbase.fdimf
+@ cdecl fdiml(double double) ucrtbase.fdiml
 @ cdecl floor(double) ucrtbase.floor
 @ cdecl -arch=arm,x86_64,arm64 floorf(float) ucrtbase.floorf
 @ cdecl fma(double double double) ucrtbase.fma
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 26d6983..d7c5843 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -2140,9 +2140,9 @@
 @ cdecl fabs(double) MSVCRT_fabs
 @ cdecl -arch=arm,x86_64,arm64 fabsf(float) MSVCRT_fabsf
 @ cdecl fclose(ptr) MSVCRT_fclose
-@ stub fdim
-@ stub fdimf
-@ stub fdiml
+@ cdecl fdim(double double) MSVCR120_fdim
+@ cdecl fdimf(float float) MSVCR120_fdimf
+@ cdecl fdiml(double double) MSVCR120_fdim
 @ stub feclearexcept
 @ cdecl fegetenv(ptr) MSVCRT_fegetenv
 @ stub fegetexceptflag
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index 3ca90c3..2dcf191 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1806,9 +1806,9 @@
 @ cdecl fabs(double) msvcr120.fabs
 @ cdecl -arch=arm,x86_64,arm64 fabsf(float) msvcr120.fabsf
 @ cdecl fclose(ptr) msvcr120.fclose
-@ stub fdim
-@ stub fdimf
-@ stub fdiml
+@ cdecl fdim(double double) msvcr120.fdim
+@ cdecl fdimf(float float) msvcr120.fdimf
+@ cdecl fdiml(double double) msvcr120.fdiml
 @ stub feclearexcept
 @ cdecl fegetenv(ptr) msvcr120.fegetenv
 @ stub fegetexceptflag
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index c29539e..841a231 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -3024,6 +3024,30 @@ double CDECL MSVCR120_fmax(double x, double y)
 }
 
 /*********************************************************************
+ *      fdimf (MSVCR120.@)
+ */
+float CDECL MSVCR120_fdimf(float x, float y)
+{
+    if(isnan(x))
+        return x;
+    if(isnan(y))
+        return y;
+    return x>y ? x-y : 0;
+}
+
+/*********************************************************************
+ *      fdim (MSVCR120.@)
+ */
+double CDECL MSVCR120_fdim(double x, double y)
+{
+    if(isnan(x))
+        return x;
+    if(isnan(y))
+        return y;
+    return x>y ? x-y : 0;
+}
+
+/*********************************************************************
  *      _fdsign (MSVCR120.@)
  */
 int CDECL MSVCR120__fdsign(float x)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 6609683..cde137d 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -2283,9 +2283,9 @@
 @ cdecl fabs(double) MSVCRT_fabs
 @ cdecl -arch=arm,arm64 fabsf(float) MSVCRT_fabsf
 @ cdecl fclose(ptr) MSVCRT_fclose
-@ stub fdim
-@ stub fdimf
-@ stub fdiml
+@ cdecl fdim(double double) MSVCR120_fdim
+@ cdecl fdimf(float float) MSVCR120_fdimf
+@ cdecl fdiml(double double) MSVCR120_fdim
 @ stub feclearexcept
 @ cdecl fegetenv(ptr) MSVCRT_fegetenv
 @ stub fegetexceptflag




More information about the wine-cvs mailing list