msvcrt: Make the coshf function NAN preserving.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Martin Storsjo 2021-07-28 14:41:51 +02:00 committed by Alexandre Julliard
parent 85e934e4b8
commit 361143252b
1 changed files with 5 additions and 1 deletions

View File

@ -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;
}