aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorMarius Hillenbrand <mhillen@linux.ibm.com>2020-12-01 11:02:27 +0100
committerAndreas Krebbel <krebbel@linux.ibm.com>2020-12-01 11:29:09 +0100
commita5dd6b69fcbe74c02d4821ac2daf2b8c9f819f6e (patch)
tree78b146b12ca2fe39d2170da0e04c2eb9d1f9da52 /gcc/doc
parentcffd725c0eb44daa0234f3af39cd94ad97f2833d (diff)
downloadgcc-a5dd6b69fcbe74c02d4821ac2daf2b8c9f819f6e.zip
gcc-a5dd6b69fcbe74c02d4821ac2daf2b8c9f819f6e.tar.gz
gcc-a5dd6b69fcbe74c02d4821ac2daf2b8c9f819f6e.tar.bz2
IBM Z: Configure excess precision for float at compile-time
Historically, float_t has been defined as double on s390 and gcc would emit double precision insns for evaluating float expressions when in standard-compliant mode. Configure that behavior at compile-time as prep for changes in glibc: When glibc ties float_t to double, keep the old behavior; when glibc derives float_t from FLT_EVAL_METHOD (as on most other archs), revert to the default behavior (i.e., FLT_EVAL_METHOD_PROMOTE_TO_FLOAT). Provide a configure option --enable-s390-excess-float-precision to override the check. gcc/ChangeLog: 2020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com> * configure.ac: Add configure option --enable-s390-excess-float-precision and check to derive default from glibc. * config/s390/s390.c: Guard s390_excess_precision with an ifdef for ENABLE_S390_EXCESS_FLOAT_PRECISION. * doc/install.texi: Document --enable-s390-excess-float-precision. * configure: Regenerate. * config.in: Regenerate.
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/install.texi10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 021c347..a38ca3e 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2270,6 +2270,16 @@ information in object.
The option is disabled by default. It is enabled on RISC-V/ELF (bare-metal)
target if target binutils supported.
+
+@item --enable-s390-excess-float-precision
+@itemx --disable-s390-excess-float-precision
+On s390(x) targets, enable treatment of float expressions with double precision
+when in standards-compliant mode (e.g., when @code{--std=c99} or
+@code{-fexcess-precision=standard} are given).
+
+For a native build, the option's default is derived from glibc's behavior. When
+glibc clamps float_t to double, gcc follows and enables the option. In all other
+cases, it defaults to off.
@end table
@subheading Cross-Compiler-Specific Options