Module: wine Branch: master Commit: 09a727c33ca025b4b50172e872f04861df64213c URL: http://source.winehq.org/git/wine.git/?a=commit;h=09a727c33ca025b4b50172e872...
Author: Piotr Caban piotr@codeweavers.com Date: Sat Sep 12 14:29:00 2015 +0200
msvcr120: Add fmin implementation.
---
dlls/msvcr120/msvcr120.spec | 6 +++--- dlls/msvcr120_app/msvcr120_app.spec | 6 +++--- dlls/msvcrt/math.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index c2aacac..0eb7ade 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2167,9 +2167,9 @@ @ cdecl fmax(double double) MSVCR120_fmax @ cdecl fmaxf(float float) MSVCR120_fmaxf @ cdecl fmaxl(double double) MSVCR120_fmax -@ stub fmin -@ stub fminf -@ stub fminl +@ cdecl fmin(double double) MSVCR120_fmin +@ cdecl fminf(float float) MSVCR120_fminf +@ cdecl fminl(double double) MSVCR120_fmin @ cdecl fmod(double double) MSVCRT_fmod @ cdecl -arch=arm,x86_64 fmodf(float float) MSVCRT_fmodf @ cdecl fopen(str str) MSVCRT_fopen diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 392c3f7..ec97ad7 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1836,9 +1836,9 @@ @ cdecl fmax(double double) msvcr120.fmax @ cdecl fmaxf(float float) msvcr120.fmaxf @ cdecl fmaxl(double double) msvcr120.fmaxl -@ stub fmin -@ stub fminf -@ stub fminl +@ cdecl fmin(double double) msvcr120.fmin +@ cdecl fminf(float float) msvcr120.fminf +@ cdecl fminl(double double) msvcr120.fminl @ cdecl fmod(double double) msvcr120.fmod @ cdecl -arch=arm,x86_64 fmodf(float float) msvcr120.fmodf @ cdecl fopen(str str) msvcr120.fopen diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index 162dcfb..2459bf5 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -2683,3 +2683,31 @@ int CDECL MSVCR120__dsign(double x) { return signbit(x) ? 0x8000 : 0; } + +/********************************************************************* + * fminf (MSVCR120.@) + */ +float CDECL MSVCR120_fminf(float x, float y) +{ + if(isnanf(x)) + return y; + if(isnanf(y)) + return x; + if(x==0 && y==0) + return signbit(x) ? x : y; + return x<y ? x : y; +} + +/********************************************************************* + * fmin (MSVCR120.@) + */ +double CDECL MSVCR120_fmin(double x, double y) +{ + if(isnan(x)) + return y; + if(isnan(y)) + return x; + if(x==0 && y==0) + return signbit(x) ? x : y; + return x<y ? x : y; +}