Signed-off-by: Andrew Eikum aeikum@codeweavers.com --- .../api-ms-win-crt-math-l1-1-0.spec | 4 ++-- dlls/msvcr120/msvcr120.spec | 4 ++-- dlls/msvcr120_app/msvcr120_app.spec | 4 ++-- dlls/msvcrt/math.c | 16 ++++++++++++++++ dlls/msvcrt/msvcrt.spec | 2 ++ dlls/ucrtbase/ucrtbase.spec | 4 ++-- 6 files changed, 26 insertions(+), 8 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 75ecaf1effc..3a5991f1246 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 @@ -241,8 +241,8 @@ @ stub fdiml @ cdecl floor(double) ucrtbase.floor @ cdecl -arch=arm,x86_64,arm64 floorf(float) ucrtbase.floorf -@ stub fma -@ stub fmaf +@ cdecl fma(double double double) ucrtbase.fma +@ cdecl -arch=arm,x86_64,arm64 fmaf(float float float) ucrtbase.fmaf @ stub fmal @ cdecl fmax(double double) ucrtbase.fmax @ cdecl fmaxf(float float) ucrtbase.fmaxf diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 68284c9449a..f50d9da7039 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2164,8 +2164,8 @@ @ cdecl fgetws(ptr long ptr) MSVCRT_fgetws @ cdecl floor(double) MSVCRT_floor @ cdecl -arch=arm,x86_64,arm64 floorf(float) MSVCRT_floorf -@ stub fma -@ stub fmaf +@ cdecl fma(double double double) MSVCRT_fma +@ cdecl -arch=arm,x86_64,arm64 fmaf(float float float) MSVCRT_fmaf @ stub fmal @ cdecl fmax(double double) MSVCR120_fmax @ cdecl fmaxf(float float) MSVCR120_fmaxf diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index a9c21cb978a..9828508e808 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1830,8 +1830,8 @@ @ cdecl fgetws(ptr long ptr) msvcr120.fgetws @ cdecl floor(double) msvcr120.floor @ cdecl -arch=arm,x86_64,arm64 floorf(float) msvcr120.floorf -@ stub fma -@ stub fmaf +@ cdecl fma(double double double) msvcr120.fma +@ cdecl -arch=arm,x86_64,arm64 fmaf(float float float) msvcr120.fmaf @ stub fmal @ cdecl fmax(double double) msvcr120.fmax @ cdecl fmaxf(float float) msvcr120.fmaxf diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index fdd664dcec1..1d20c6c44b9 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -386,6 +386,14 @@ float CDECL MSVCRT_floorf( float x ) return floorf(x); }
+/********************************************************************* + * fmaf (MSVCRT.@) + */ +float CDECL MSVCRT_fmaf( float x, float y, float z ) +{ + return fmaf(x, y, z); +} + /********************************************************************* * frexpf (MSVCRT.@) */ @@ -862,6 +870,14 @@ double CDECL MSVCRT_floor( double x ) return floor(x); }
+/********************************************************************* + * fma (MSVCRT.@) + */ +double CDECL MSVCRT_fma( double x, double y, double z ) +{ + return fma(x, y, z); +} + /********************************************************************* * fabs (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 7958a7a0475..160f10efd84 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1288,6 +1288,8 @@ @ cdecl fgetws(ptr long ptr) MSVCRT_fgetws @ cdecl floor(double) MSVCRT_floor @ cdecl -arch=arm,x86_64,arm64 floorf(float) MSVCRT_floorf +@ cdecl fma(double double double) MSVCRT_fma +@ cdecl -arch=arm,x86_64,arm64 fmaf(float float float) MSVCRT_fmaf @ cdecl fmod(double double) MSVCRT_fmod @ cdecl -arch=arm,x86_64,arm64 fmodf(float float) MSVCRT_fmodf @ cdecl fopen(str str) MSVCRT_fopen diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index b7f814a4907..c64fee2b260 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -2305,8 +2305,8 @@ @ cdecl fgetws(ptr long ptr) MSVCRT_fgetws @ cdecl floor(double) MSVCRT_floor @ cdecl -arch=arm,x86_64,arm64 floorf(float) MSVCRT_floorf -@ stub fma -@ stub fmaf +@ cdecl fma(double double double) MSVCRT_fma +@ cdecl -arch=arm,x86_64,arm64 fmaf(float float float) MSVCRT_fmaf @ stub fmal @ cdecl fmax(double double) MSVCR120_fmax @ cdecl fmaxf(float float) MSVCR120_fmaxf
Hi Andrew,
On 5/13/19 5:23 PM, Andrew Eikum wrote:
+/*********************************************************************
fma (MSVCRT.@)
- */
+double CDECL MSVCRT_fma( double x, double y, double z ) +{
- return fma(x, y, z);
+}
Shouldn't the function set errno? Also this is a C99 function so it should be probably checked if it's available.
Thanks, Piotr