Sweden-Number/dlls/msvcrt
Martin Storsjo 37b896db48 msvcrt: Convert double (numerically) to UINT64 via INT64, fixing pow() on arm.
If converting a negative double to an UINT64, on arm it's clipped
to zero instead of converted to its two's complement form (contrary
to x86).

This fixes cases like pow(2.0, -2.0) on arm/aarch64. Add similar
casts to expf() too which seems to have a similar pattern, even if
it's not known if that case can cause issues or not.

In the original musl source, the converttoint() function returns a
signed int32_t, doing the same double->signed->unsigned conversion,
implicitly.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:05 +02:00
..
tests msvcrt: Add hyperbolic functions NAN tests. 2021-07-28 22:07:05 +02:00
Makefile.in
bnum.h
console.c
cpp.c
cppexcept.h
crt_gccmain.c
crt_main.c
crt_winmain.c
crt_wmain.c
crt_wwinmain.c
ctype.c
cxx.h
data.c
dir.c
environ.c
errno.c
except.c
except_arm.c
except_arm64.c
except_i386.c
except_x86_64.c
exit.c
file.c
heap.c
iob.c
locale.c
lock.c
main.c
math.c msvcrt: Convert double (numerically) to UINT64 via INT64, fixing pow() on arm. 2021-07-28 22:07:05 +02:00
mathf.c
mbcs.c
misc.c
msvcrt.h
msvcrt.spec
mtdll.h
onexit.c
printf.h
process.c
rsrc.rc
scanf.c
scanf.h
scheduler.c
sincos.c
string.c msvcrt: Fix strtof() error reporting for values out of float range. 2021-07-28 22:07:05 +02:00
thread.c
time.c
undname.c
wcs.c msvcrt: Fix strtof() error reporting for values out of float range. 2021-07-28 22:07:05 +02:00