Define target hook to emit KFmode constants for libgcc.
commitd9398dd2902a0142fa3b493cf61a340f1f5ab46f
authorMichael Meissner <meissner@linux.ibm.com>
Fri, 30 Apr 2021 16:32:08 +0000 (30 12:32 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Fri, 30 Apr 2021 16:32:08 +0000 (30 12:32 -0400)
tree9ece24cab7bd3a847e9194366782661d0b444cc0
parent69e5544210e3c0e27df3e6590b646c13dcce24e3
Define target hook to emit KFmode constants for libgcc.

This patch defines a target hook so that the KFmode constants
(__LIBGCC_KF_MAX__, __LIBGCC_KF_MIN__, and __LIBGCC_KF_EPSILON__) needed to
build _divkc3.c in libgcc are defined.  The need for these constants were added
in the April 28th changes to libgcc that added complex division optimizations.

We only define the KFmode constants if IEEE 128-bit floating point is
supported, but long double does not use the IEEE 128-bit format.  If long
double uses the IEEE 128-bit format, it will use TFmode and not KFmode.

gcc/
2021-04-30  Michael Meissner  <meissner@linux.ibm.com>

PR bootstrap/100327
* config/rs6000/rs6000.c
(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
(rs6000_libgcc_floating_mode_supported_p): New target hook.
gcc/config/rs6000/rs6000.c