On Wed, Oct 22, 2014 at 10:02 PM, 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 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. OK to commit? > > 2014-10-23 Joseph Myers <jos...@codesourcery.com> > > * 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.
Okay. Thanks, David