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 e500 cases. For e500v2, use of hardfp is generally right, except that calls to __unordsf2 and __unorddf2 are actually generated by GCC from __builtin_isunordered and so they need to be implemented with soft-fp to avoid recursively calling themselves. For e500v1, hardfp is right for SFmode (except for __unordsf2) but soft-fp for DFmode (and when using soft-fp, as usual it's best for the conversions between DFmode and integers all to come directly from soft-fp rather than some coming from libgcc2.c). Thus, new variables hardfp_exclusions and softfp_extras are added that configurations using t-hardfp and t-softfp can use to achieve the desired effect of selectively mixing the two sources of functions. Tested with no regressions for crosses to powerpc-linux-gnuspe (both e500v1 and e500v2); also checked that the same set of symbols and versions is exported from shared libgcc before and after the patch. * config/t-hardfp (hardfp_exclusions): Document new variable for user to define. (hardfp_func_list): Exclude functions from $(hardfp_exclusions). * config/t-softfp (softfp_extras): Document new variable for user to define. (softfp_func_list): Add functions from $(softfp_extras). * config/rs6000/t-e500v1-fp, config/rs6000/t-e500v2-fp: New files. * config.host (powerpc*-*-linux*): For e500v1, use rs6000/t-e500v1-fp and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl. For e500v2, use t-hardfp-sfdf, rs6000/t-e500v2-fp and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl. From-SVN: r216835
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
aix-unwind.h | Loading commit data... | |
aixinitfini.c | Loading commit data... | |
crtcxa.c | Loading commit data... | |
crtresfpr.S | Loading commit data... | |
crtresgpr.S | Loading commit data... | |
crtrestvr.S | Loading commit data... | |
crtresxfpr.S | Loading commit data... | |
crtresxgpr.S | Loading commit data... | |
crtsavevr.S | Loading commit data... | |
crtsavfpr.S | Loading commit data... | |
crtsavgpr.S | Loading commit data... | |
cxa_atexit.c | Loading commit data... | |
cxa_finalize.c | Loading commit data... | |
darwin-asm.h | Loading commit data... | |
darwin-crt2.c | Loading commit data... | |
darwin-fallback.c | Loading commit data... | |
darwin-fpsave.S | Loading commit data... | |
darwin-gpsave.S | Loading commit data... | |
darwin-tramp.S | Loading commit data... | |
darwin-unwind.h | Loading commit data... | |
darwin-vecsave.S | Loading commit data... | |
darwin-world.S | Loading commit data... | |
e500crtres32gpr.S | Loading commit data... | |
e500crtres64gpr.S | Loading commit data... | |
e500crtres64gprctr.S | Loading commit data... | |
e500crtrest32gpr.S | Loading commit data... | |
e500crtrest64gpr.S | Loading commit data... | |
e500crtresx32gpr.S | Loading commit data... | |
e500crtresx64gpr.S | Loading commit data... | |
e500crtsav32gpr.S | Loading commit data... | |
e500crtsav64gpr.S | Loading commit data... | |
e500crtsav64gprctr.S | Loading commit data... | |
e500crtsavg32gpr.S | Loading commit data... | |
e500crtsavg64gpr.S | Loading commit data... | |
e500crtsavg64gprctr.S | Loading commit data... | |
eabi-ci.S | Loading commit data... | |
eabi-cn.S | Loading commit data... | |
eabi.S | Loading commit data... | |
exit.h | Loading commit data... | |
freebsd-unwind.h | Loading commit data... | |
gthr-aix.h | Loading commit data... | |
ibm-ldouble-format | Loading commit data... | |
ibm-ldouble.c | Loading commit data... | |
libgcc-aix-cxa.ver | Loading commit data... | |
libgcc-darwin.10.4.ver | Loading commit data... | |
libgcc-darwin.10.5.ver | Loading commit data... | |
libgcc-glibc.ver | Loading commit data... | |
libgcc-ibm-ldouble.ver | Loading commit data... | |
linux-unwind.h | Loading commit data... | |
ppc64-fp.c | Loading commit data... | |
sfp-machine.h | Loading commit data... | |
sol-ci.S | Loading commit data... | |
sol-cn.S | Loading commit data... | |
t-aix-cxa | Loading commit data... | |
t-crtstuff | Loading commit data... | |
t-darwin | Loading commit data... | |
t-darwin64 | Loading commit data... | |
t-e500v1-fp | Loading commit data... | |
t-e500v2-fp | Loading commit data... | |
t-freebsd | Loading commit data... | |
t-freebsd64 | Loading commit data... | |
t-ibm-ldouble | Loading commit data... | |
t-linux | Loading commit data... | |
t-lynx | Loading commit data... | |
t-netbsd | Loading commit data... | |
t-ppc64-fp | Loading commit data... | |
t-ppccomm | Loading commit data... | |
t-savresfgpr | Loading commit data... | |
t-slibgcc-aix | Loading commit data... | |
tramp.S | Loading commit data... |