aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.def
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-11-04 15:39:57 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2013-11-04 15:39:57 +0000
commit9193fb05957b1602d175e8aef0a09bd4c4251d82 (patch)
tree8756f9f52a3c5e06a3012fe2ac067879d37c313e /gcc/target.def
parent411f1755096acb1655b2cb5ed45ffc8338919184 (diff)
downloadgcc-9193fb05957b1602d175e8aef0a09bd4c4251d82.zip
gcc-9193fb05957b1602d175e8aef0a09bd4c4251d82.tar.gz
gcc-9193fb05957b1602d175e8aef0a09bd4c4251d82.tar.bz2
cpp.texi (__GCC_IEC_559, [...]): Document macros.
* doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros. * target.def (float_exceptions_rounding_supported_p): New hook. * targhooks.c (default_float_exceptions_rounding_supported_p): New function. * targhooks.h (default_float_exceptions_rounding_supported_p): Declare. * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New @hook. * doc/tm.texi: Regenerate. * config.gcc (powerpc*-*-linux*): Set extra_objs. * config/rs6000/rs6000-linux.c: New file. * config/rs6000/rs6000-protos.h (rs6000_linux_float_exceptions_rounding_supported_p): Declare. * config/rs6000/linux.h (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro. * config/rs6000/linux64.h (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise. * config/rs6000/t-linux (rs6000-linux.o): New rule. * config/rs6000/t-linux64 (rs6000-linux.o): Likewise. c-family: * c-cppbuiltin.c (cpp_iec_559_value, cpp_iec_559_complex_value): New functions. (c_cpp_builtins): Define __GCC_IEC_559 and __GCC_IEC_559_COMPLEX. testsuite: * gcc.dg/iec-559-macros-1.c, gcc.dg/iec-559-macros-2.c, gcc.dg/iec-559-macros-3.c, gcc.dg/iec-559-macros-4.c, gcc.dg/iec-559-macros-5.c, gcc.dg/iec-559-macros-6.c, gcc.dg/iec-559-macros-7.c, gcc.dg/iec-559-macros-8.c, gcc.dg/iec-559-macros-9.c: New tests. From-SVN: r204351
Diffstat (limited to 'gcc/target.def')
-rw-r--r--gcc/target.def12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/target.def b/gcc/target.def
index cf3e2fd..3bbbbd3 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -1935,6 +1935,18 @@ DEFHOOK_UNDOC
bool, (void),
targhook_float_words_big_endian)
+DEFHOOK
+(float_exceptions_rounding_supported_p,
+ "Returns true if the target supports IEEE 754 floating-point exceptions\
+ and rounding modes, false otherwise. This is intended to relate to the\
+ @code{float} and @code{double} types, but not necessarily @code{long double}.\
+ By default, returns true if the @code{adddf3} instruction pattern is\
+ available and false otherwise, on the assumption that hardware floating\
+ point supports exceptions and rounding modes but software floating point\
+ does not.",
+ bool, (void),
+ default_float_exceptions_rounding_supported_p)
+
/* True if the target supports decimal floating point. */
DEFHOOK
(decimal_float_supported_p,