Module: wine Branch: master Commit: 83a95b8fcf90a2a9d23bdfebe1a18cb8f729de1b URL: https://source.winehq.org/git/wine.git/?a=commit;h=83a95b8fcf90a2a9d23bdfebe...
Author: Martin Storsjo martin@martin.st Date: Wed Jul 31 00:08:52 2019 +0300
msvcrt: Implement the fdim functions.
Signed-off-by: Martin Storsjo martin@martin.st Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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