gcc/libgcc
Joseph Myers d80c2beaf7 Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.
Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the 32-bit
classic hard-float and soft-float cases.  (e500 will be dealt with in
a separate patch which will need to add new features to t-hardfp and
t-softfp; this patch keeps the status quo for e500.)

For hard-float, while the functions in question are part of the libgcc
ABI there is no need for them to contain software floating point code:
no newly built code should use them, and if anything does use them
it's most efficient (space and speed) for them to pass straight
through to floating-point hardware instructions; this case is made to
use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
functions for operations involving DImode or unsigned integers is more
efficient than using the libgcc2.c versions of those operations to
convert to operations on other types (which then end up calling
soft-fp functions for those other types, possibly more than once);
this case is thus stopped from using t-softfp-excl.  (A future patch
will stop the e500 cases from using t-softfp-excl as well.)

Tested with no regressions for crosses to powerpc-linux-gnu (soft
float and classic hard float); also checked that the same set of
symbols and versions is exported from shared libgcc before and after
the patch.

	* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
	* configure: Regenerate.
	* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
	additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
	of soft-fp for 32-bit classic hard float.  Do not use
	t-softfp-excl for soft float.

From-SVN: r216687
2014-10-25 01:22:02 +01:00
..
config Do not build soft-fp code at all for powerpc64-linux-gnu. 2014-10-22 18:29:14 +01:00
soft-fp Update soft-fp from glibc. 2014-10-09 19:21:30 +01:00
ChangeLog Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. 2014-10-25 01:22:02 +01:00
config.host Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. 2014-10-25 01:22:02 +01:00
config.in
configure Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. 2014-10-25 01:22:02 +01:00
configure.ac Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. 2014-10-25 01:22:02 +01:00
crtstuff.c crtstuff.c (USE_EH_FRAME_REGISTRY): Let USE_EH_FRAME_REGISTRY_ALWAYS override USE_PT_GNU_EH_FRAME. 2014-09-22 00:49:01 +00:00
dfp-bit.c
dfp-bit.h Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro. 2014-09-23 01:48:46 +01:00
divmod.c
empty.mk
emutls.c
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c
fixed-bit.c
fixed-bit.h Remove LIBGCC2_HAS_?F_MODE target macros. 2014-09-12 13:05:18 +01:00
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Remove no-longer-needed fp-bit target macros. 2014-09-08 13:22:56 +01:00
fp-bit.h
gbl-ctors.h
gen-fixed.sh
generic-morestack-thread.c
generic-morestack.c
generic-morestack.h
gstdint.h
gthr-posix.h
gthr-single.h
gthr.h
libgcc2.c Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro. 2014-09-23 01:48:46 +01:00
libgcc2.h Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro. 2014-09-23 01:48:46 +01:00
libgcc-std.ver.in
libgcov-driver-system.c
libgcov-driver.c Add overlap functionality to gcov-tool. 2014-10-08 21:51:41 +00:00
libgcov-interface.c Makefile.in (LIBGCOV_INTERFACE): Add _gcov_dump from ... 2014-09-17 20:13:17 +00:00
libgcov-merge.c Makefile.in: Fix dependence. 2014-10-07 04:02:31 +00:00
libgcov-profiler.c Makefile.in: Fix dependence. 2014-10-07 04:02:31 +00:00
libgcov-util.c Add overlap functionality to gcov-tool. 2014-10-08 21:51:41 +00:00
libgcov.h Makefile.in: Fix dependence. 2014-10-07 04:02:31 +00:00
Makefile.in Makefile.in: Fix dependence. 2014-10-07 04:02:31 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh
mkmap-flat.awk
mkmap-symver.awk
shared-object.mk
siditi-object.mk
static-object.mk
sync.c
udivmod.c
udivmodsi4.c
unwind-arm-common.inc
unwind-c.c
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-dip.c
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-seh.c
unwind-sjlj.c
unwind.inc
vtv_end_preinit.c
vtv_end.c
vtv_start_preinit.c
vtv_start.c