On Wed, Oct 29, 2014 at 8:54 AM, Joseph S. Myers <jos...@codesourcery.com> wrote: > 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. > OK to commit? > > 2014-10-29 Joseph Myers <jos...@codesourcery.com> > > * 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.
Okay. Thanks, David