Martin Storsjo : msvcrt: Make the coshf function NAN preserving.
Module: wine Branch: master Commit: 361143252bf23b6f29eead49a3715fdd6d552e8a URL: https://source.winehq.org/git/wine.git/?a=commit;h=361143252bf23b6f29eead49a... Author: Martin Storsjo <martin(a)martin.st> Date: Wed Jul 28 14:41:51 2021 +0200 msvcrt: Make the coshf function NAN preserving. Signed-off-by: Martin Storsjo <martin(a)martin.st> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/math.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index 4e5dedd3576..92bf12b4d54 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -1137,6 +1137,7 @@ static float __expo2f(float x, float sign) float CDECL coshf( float x ) { UINT32 ui = *(UINT32*)&x; + UINT32 sign = ui & 0x80000000; float t; /* |x| */ @@ -1160,7 +1161,10 @@ float CDECL coshf( float x ) } /* |x| > log(FLT_MAX) or nan */ - t = __expo2f(x, 1.0f); + if (ui > 0x7f800000) + *(UINT32*)&t = ui | sign | 0x400000; + else + t = __expo2f(x, 1.0f); return t; }
participants (1)
-
Alexandre Julliard