mingw-w64/mingw-w64-crt/math
Martin Storsjö ae0e8298da Make ARM softmath functions experimental, disabled by default
By default, just forward calls to msvcrt.dll for the functions
implemented with softmath routines.

The msvcrt math functions might not be fully C99 compliant, but
the current softfloat implementations are lacking in many other ways
(e.g. crashing due to infinite recursion for some input values, only
working for certain ranges of input values, etc.).

For functions that are missing in msvcrt.dll (log2*, exp2*, scalbn*),
provide small wrappers that fall back on log and pow.

This makes the libav testsuite succeed (when run in wine), when
built with clang for ARM with mingw-w64 - previously a number of
tests failed due to faulty math functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-10-04 09:49:46 +03:00
..
arm Make ARM softmath functions experimental, disabled by default 2016-10-04 09:49:46 +03:00
DFP Remove dead mpdecimal code, it was never called 2016-09-22 20:48:38 +08:00
softmath Fix signed/unsigned warning. 2016-08-18 03:44:54 -07:00
_chgsignl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
abs64.c Fix missing prototypes 2016-08-16 03:17:36 -07:00
acosf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
acosh.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 19:19:27 +00:00
acosh.def.h 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 19:19:27 +00:00
acoshf.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 19:19:27 +00:00
acoshl.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 19:19:27 +00:00
acosl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
asinf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
asinh.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
asinhf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
asinhl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
asinl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atan2.c Add hypot and atan2 to libmingwex for x86 and x64. 2014-10-14 17:05:44 +02:00
atan2f.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atan2l.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atanf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atanh.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atanhf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atanhl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
atanl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
cbrt.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
cbrtf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
cbrtl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
ceil.S math: Make sure NAN/INF are preserved in floor/ceil functions on ARM 2016-08-23 16:10:27 +03:00
ceilf.S math: Fix rounding in ceilf and floorf on ARM 2016-08-23 16:11:10 +03:00
ceill.S math: Make sure NAN/INF are preserved in floor/ceil functions on ARM 2016-08-23 16:10:27 +03:00
cephes_emath.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
cephes_emath.h Avoid 'redefine' warnings due to minor variations in duplicated defines. 2016-08-16 16:49:44 -07:00
cephes_mconf.h Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
copysign.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
copysignf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
copysignl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
cos.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 12:58:28 +00:00
cos.def.h Improve c99 math and allow _matherr for internal functions. 2010-08-01 16:49:39 +00:00
cosf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
coshf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
coshl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
cosl_internal.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
cosl.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 12:58:28 +00:00
cossin.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
erfl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
exp2.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
exp2f.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
exp2l.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
exp.c Support C99 exp-family. 2010-07-30 11:12:07 +00:00
exp.def.h Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
expf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
expl.c Support C99 exp-family. 2010-07-30 11:12:07 +00:00
expm1.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 10:36:59 +00:00
expm1.def.h Fix corner-case expm1(-0) == -0. Found by Matthew Brett. 2014-04-17 13:04:20 +00:00
expm1f.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 10:36:59 +00:00
expm1l.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 10:36:59 +00:00
fabs.c Use gcc fabs builtins on ARM 2014-06-03 23:12:36 +02:00
fabsf.c Use gcc fabs builtins on ARM 2014-06-03 23:12:36 +02:00
fabsl.c Use gcc fabs builtins on ARM 2014-06-03 23:12:36 +02:00
fastmath.h Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fdim.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fdimf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fdiml.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
floor.S math: Make sure NAN/INF are preserved in floor/ceil functions on ARM 2016-08-23 16:10:27 +03:00
floorf.S math: Fix rounding in ceilf and floorf on ARM 2016-08-23 16:11:10 +03:00
floorl.S math: Make sure NAN/INF are preserved in floor/ceil functions on ARM 2016-08-23 16:10:27 +03:00
fma.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
fmaf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
fmal.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmax.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmaxf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmaxl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmin.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fminf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fminl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmod.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmodf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fmodl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fp_consts.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fp_consts.h Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fp_constsf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fp_constsl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
fpclassify.c mingw-w64-crt: Make fpclassify consistent for x86 against other archs 2016-02-24 17:50:21 +08:00
fpclassifyf.c math: Add ARM implementation for fpclassify, fpclassifyf and fpclassifyl 2014-08-12 00:27:04 +02:00
fpclassifyl.c math: Fix fpclassifyl return on ARM 2014-09-21 17:37:29 +02:00
frexpf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
frexpl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
fucom.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
hypot.c Add special-case if one argument is INF, return INF. 2014-10-15 10:55:05 +02:00
hypotf.c Add special-case if one argument is INF, return INF. 2014-10-15 10:55:05 +02:00
hypotl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
ilogb.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
ilogbf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
ilogbl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
internal_logl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
isnan.c math: Add ARM implementation for isnan, isnanf and isnanl 2014-08-12 00:27:04 +02:00
isnanf.c math: Add ARM implementation for isnan, isnanf and isnanl 2014-08-12 00:27:04 +02:00
isnanl.c math: Fix isnanl return on ARM 2014-09-21 17:37:14 +02:00
ldexp.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
ldexpf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
ldexpl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
lgamma.c Adjust lgamma-functions so that they are operating directly on 2012-11-21 14:03:04 +00:00
lgammaf.c Adjust lgamma-functions so that they are operating directly on 2012-11-21 14:03:04 +00:00
lgammal.c math: Fix lgammal warning on ARM 2014-09-21 17:39:28 +02:00
llrint.c math: Fix rounding in llrint(f) on ARM 2016-08-22 09:46:38 +03:00
llrintf.c math: Fix rounding in llrint(f) on ARM 2016-08-22 09:46:38 +03:00
llrintl.c math: Fix rounding in llrintl on ARM 2016-08-23 16:12:03 +03:00
llround.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
llroundf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
llroundl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
log1p.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log1pf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log1pl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log2.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log2f.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log2l.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log10f.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
log10l.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
log.c 2010-07-30 Kai Tietz <kai.tietz@onevision.com> 2010-07-30 12:54:32 +00:00
log.def.h Fix log(+/-0) to return -inf. 2011-03-07 07:56:42 +00:00
logb.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
logbf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
logbl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
logf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
logl.c removed svn:executable property 2011-08-09 13:27:34 +00:00
lrint.c math: Add ARM implementation for lrint 2014-09-20 17:05:23 +02:00
lrintf.c math: Add ARM implementation for lrintf 2014-09-20 17:05:23 +02:00
lrintl.c math: Forward lrintl to lrint on ARM 2014-09-20 17:05:23 +02:00
lround.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
lroundf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
lroundl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
modf.c math: Add platform independent implementation for modf 2014-09-21 15:37:11 +02:00
modff.c math: Add platform independent implementation for modff 2014-09-21 15:37:22 +02:00
modfl.c math: Add platform independent implementation for modfl 2014-09-21 15:37:32 +02:00
nearbyint.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
nearbyintf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
nearbyintl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
nextafterf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
nextafterl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
nexttoward.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
nexttowardf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
pow.c 2010-07-25 Kai Tietz <kai.tietz@onevision.com> 2010-07-25 21:09:30 +00:00
pow.def.h Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
powf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
powi.c 2012-01-18 Kai Tietz <ktietz@redhat.com> 2012-01-18 21:38:57 +00:00
powi.def.h Fix reported bug #374 pow(x,INT_MIN) hangs - again 2014-01-15 09:39:06 +00:00
powif.c 2012-01-18 Kai Tietz <ktietz@redhat.com> 2012-01-18 21:38:57 +00:00
powil.c 2012-01-18 Kai Tietz <ktietz@redhat.com> 2012-01-18 21:38:57 +00:00
powl.c 2010-07-25 Kai Tietz <kai.tietz@onevision.com> 2010-07-25 21:09:30 +00:00
remainder.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
remainderf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
remainderl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
remquo.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
remquof.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
remquol.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
rint.c math: Preserve NAN/INF in rint(f) on ARM 2016-08-23 16:11:39 +03:00
rintf.c math: Preserve NAN/INF in rint(f) on ARM 2016-08-23 16:11:39 +03:00
rintl.c math: Forward rintl to rint on ARM 2014-09-20 17:05:23 +02:00
round.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
roundf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
roundl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
s_erf.c Remove wrong PD header. 2010-02-08 20:56:36 +00:00
scalbn.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
scalbnf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
scalbnl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
sf_erf.c Fix wrong PD header. 2010-02-08 20:57:08 +00:00
signbit.c math: Add ARM implementation for signbit, signbitf and signbitl 2014-08-12 00:27:05 +02:00
signbitf.c math: Add ARM implementation for signbit, signbitf and signbitl 2014-08-12 00:27:05 +02:00
signbitl.c math: Fix signbitl return on ARM 2014-09-21 17:39:59 +02:00
signgam.c Add signgam feature and fix current bootstrap of gcc 4.8 in libquadmath. 2012-11-20 22:06:02 +00:00
sin.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 12:58:28 +00:00
sin.def.h Improve c99 math and allow _matherr for internal functions. 2010-08-01 16:49:39 +00:00
sinf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
sinhf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
sinhl.c Avoid truncating from long double to double in sinhl(). 2016-08-22 00:51:12 -07:00
sinl_internal.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
sinl.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 12:58:28 +00:00
sqrt.c removed svn:executable property 2011-08-09 13:27:34 +00:00
sqrt.def.h arm: Avoid making __fsqrt_internal a global symbol 2016-08-09 14:40:31 +03:00
sqrtf.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 16:06:11 +00:00
sqrtl.c 2010-08-01 Kai Tietz <kai.tietz@onevision.com> 2010-08-01 16:06:11 +00:00
tanf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
tanhf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
tanhl.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
tanl.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
tgamma.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
tgammaf.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
tgammal.c Replace 'w64 mingw-runtime' by 'mingw-w64 runtime' 2012-06-28 15:40:59 +00:00
trunc.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
truncf.S Change check for _WIN64 to check for __x86_64__ in assembler files 2016-08-22 14:30:39 +02:00
truncl.c math: Forward truncl to trunc on ARM 2014-09-20 17:05:21 +02:00