freebsd-dev/lib/msun
Andrew Turner b2e843161d Use a builtin where possible in msun
Some of the functions in msun can be implemented using a compiler
builtin function to generate a small number of instructions. Implement
this support in fma, fmax, fmin, and sqrt on arm64.

Care must be taken as the builtin can be implemented as a function
call on some architectures that lack direct support. In these cases
we need to use the original code path.

As we don't set errno on failure build with -fno-math-errno so the
toolchain doesn't convert a builtin into a function call when it
detects a failure, e.g. gcc will add a call to sqrt when the input
is negative leading to an infinite loop.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32801
2021-11-19 11:40:46 +00:00
..
aarch64 Use a builtin where possible in msun 2021-11-19 11:40:46 +00:00
amd64 libm: Add missing END() directives for amd64 routines 2019-10-23 16:05:52 +00:00
arm lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
bsdsrc msun: drop clause 3 from the Berkeley license. 2019-12-27 01:11:26 +00:00
i387 Add CFI start/end proc directives to arm64, i386, and ppc 2020-12-05 00:33:28 +00:00
ld80 Implementations of cexpl() 2021-11-05 13:51:42 +02:00
ld128 Implementations of cexpl() 2021-11-05 13:51:42 +02:00
man Implementations of cexpl() 2021-11-05 13:51:42 +02:00
mips lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
powerpc Set default SPE FP environment 2021-05-29 21:53:35 -05:00
riscv RISC-V: Fix feenableexcept return value 2021-03-25 11:16:20 +00:00
src Use a builtin where possible in msun 2021-11-19 11:40:46 +00:00
tests Fix failures in libm's lround_test after clang 12 import 2021-06-22 18:38:45 +02:00
x86 Resolve conflicts between macros in fenv.h and ieeefp.h 2018-05-31 20:22:47 +00:00
Makefile Use a builtin where possible in msun 2021-11-19 11:40:46 +00:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Symbol.map Implementations of cexpl() 2021-11-05 13:51:42 +02:00