glibc/bits
Joseph Myers f11e220d2d Refactor FP_FAST_* into bits/fp-fast.h.
Continuing the refactoring of bits/mathdef.h, this patch moves the
FP_FAST_* definitions into a new bits/fp-fast.h header.  Currently
this is only for FP_FAST_FMA*, but in future it would be the
appropriate place for the FP_FAST_* macros from TS 18661-1 as well.

The generic bits/mathdef.h header defines these macros based on
whether the compiler defines __FP_FAST_*.  Most architecture-specific
headers, however, fail to do so, meaning that if the architecture (or
some particular processors) does in fact have fused operations, and
GCC knows to use them inline, the FP_FAST_* macros will still not be
defined.

By refactoring, this patch causes the generic version (based on
__FP_FAST_*) to be used in more cases, and so the macro definitions to
be more accurate.  Architectures that already defined some or all of
these macros other than based on the predefines have their own
versions of fp-fast.h, which are arranged so they define FP_FAST_* if
either the architecture-specific conditions are true or __FP_FAST_*
are defined.

After this refactoring, various bits/mathdef.h headers for
architectures with long double = double are semantically identical to
the generic version.  The patch removes those headers that are
redundant.  (In fact two of the four removed were already redundant
before this patch because they did use __FP_FAST_*.)

Tested for x86_64 and x86, and compilation-only with
build-many-glibcs.py.

	* bits/fp-fast.h: New file.
	* sysdeps/aarch64/bits/fp-fast.h: Likewise.
	* sysdeps/powerpc/bits/fp-fast.h: Likewise.
	* math/Makefile (headers): Add bits/fp-fast.h.
	* math/math.h: Include <bits/fp-fast.h>.
	* bits/mathdef.h (FP_FAST_FMA): Remove.
	(FP_FAST_FMAF): Likewise.
	(FP_FAST_FMAL): Likewise.
	* sysdeps/aarch64/bits/mathdef.h (FP_FAST_FMA): Likewise.
	(FP_FAST_FMAF): Likewise.
	* sysdeps/powerpc/bits/mathdef.h (FP_FAST_FMA): Likewise.
	(FP_FAST_FMAF): Likewise.
	* sysdeps/x86/bits/mathdef.h (FP_FAST_FMA): Likewise.
	(FP_FAST_FMAF): Likewise.
	(FP_FAST_FMAL): Likewise.
	* sysdeps/arm/bits/mathdef.h: Remove file.
	* sysdeps/hppa/fpu/bits/mathdef.h: Likewise.
	* sysdeps/sh/sh4/bits/mathdef.h: Likewise.
	* sysdeps/tile/bits/mathdef.h: Likewise.
2016-11-29 01:45:00 +00:00
..
byteswap-16.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
byteswap.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
confname.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dirent.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dlfcn.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
elfclass.h
endian.h
environments.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errno.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fcntl.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fenv.h Add femode_t functions. 2016-09-07 16:40:09 +00:00
fenvinline.h
flt-eval-method.h Refactor float_t, double_t information into bits/flt-eval-method.h. 2016-11-24 18:44:50 +00:00
fp-fast.h Refactor FP_FAST_* into bits/fp-fast.h. 2016-11-29 01:45:00 +00:00
huge_val.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
huge_valf.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
huge_vall.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
hwcap.h Move sysdeps/generic/bits/hwcap.h to top-level bits/ 2016-06-22 05:48:11 -07:00
in.h Installed-header hygiene (BZ#20366): obsolete BSD u_* types. 2016-09-23 08:43:56 -04:00
inf.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ioctl-types.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ioctls.h
ipc.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ipctypes.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
iscanonical.h Add iscanonical. 2016-09-30 00:27:50 +00:00
libc-header-start.h Support __STDC_WANT_IEC_60559_FUNCS_EXT__ feature test macro. 2016-08-03 22:21:37 +00:00
libm-simd-decl-stubs.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
link.h
local_lim.h
math-vector.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mathdef.h Refactor FP_FAST_* into bits/fp-fast.h. 2016-11-29 01:45:00 +00:00
mathinline.h
mman-linux.h Update glibc headers for Linux 4.5. 2016-03-14 19:04:53 +00:00
mman.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mqueue.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
msq.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nan.h
netdb.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
param.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
poll.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
posix_opt.h
pthreadtypes.h
resource.h Installed-header hygiene (BZ#20366): time.h types. 2016-09-23 08:43:56 -04:00
sched.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
select.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sem.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
setjmp.h
shm.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigaction.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigcontext.h Installed-header hygiene (BZ#20366): stack_t. 2016-09-23 08:43:56 -04:00
siginfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
signum.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigset.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigstack.h Installed-header hygiene (BZ#20366): stack_t. 2016-09-23 08:43:56 -04:00
sigthread.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sockaddr.h Make padding in struct sockaddr_storage explicit [BZ #20111] 2016-05-23 19:43:09 +02:00
socket.h Installed-header hygiene (BZ#20366): Simple self-contained fixes. 2016-09-23 08:43:55 -04:00
stat.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
statfs.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
statvfs.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdlib-bsearch.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
string.h Add _STRING_INLINE_unaligned and string_private.h 2016-02-18 14:55:29 -02:00
stropts.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sys_errlist.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
syslog-path.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sysmacros.h Minimize sysdeps code involved in defining major/minor/makedev. 2016-08-03 15:23:04 -04:00
termios.h Fix TABDLY value 2016-07-13 22:41:40 +02:00
time.h Installed-header hygiene (BZ#20366): time.h types. 2016-09-23 08:43:56 -04:00
types.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
typesizes.h Consolidate Linux setrlimit and getrlimit implementation 2016-11-17 15:54:22 -02:00
uio.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ustat.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
utmp.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
utsname.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
waitflags.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
waitstatus.h Remove union wait [BZ #19613] 2016-04-14 08:54:57 +02:00
wchar.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
wordsize.h Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
xtitypes.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00