i386.c (ix86_float_exceptions_rounding_supported_p): New function.

* config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
	New function.
	(TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.

c-family:
	* c-cppbuiltin.c (cpp_iec_559_value): Test
	flag_excess_precision_cmdline not flag_excess_precision.

From-SVN: r204390
This commit is contained in:
Joseph Myers 2013-11-05 13:21:36 +00:00 committed by Joseph Myers
parent 4de9c53f02
commit 254a0760a1
4 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2013-11-05 Joseph Myers <joseph@codesourcery.com>
* config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
New function.
(TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
2013-11-05 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/58958

View File

@ -1,3 +1,8 @@
2013-11-05 Joseph Myers <joseph@codesourcery.com>
* c-cppbuiltin.c (cpp_iec_559_value): Test
flag_excess_precision_cmdline not flag_excess_precision.
2013-11-05 Tobias Burnus <burnus@net-b.de>
* c.opt (fopenmp-simd): New option.

View File

@ -734,7 +734,7 @@ cpp_iec_559_value (void)
if (flag_iso
&& !c_dialect_cxx ()
&& TARGET_FLT_EVAL_METHOD != 0
&& flag_excess_precision != EXCESS_PRECISION_STANDARD)
&& flag_excess_precision_cmdline != EXCESS_PRECISION_STANDARD)
ret = 0;
/* Various options are contrary to IEEE 754 semantics. */

View File

@ -43519,6 +43519,18 @@ ix86_memmodel_check (unsigned HOST_WIDE_INT val)
return val;
}
/* Implement TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P. */
static bool
ix86_float_exceptions_rounding_supported_p (void)
{
/* For x87 floating point with standard excess precision handling,
there is no adddf3 pattern (since x87 floating point only has
XFmode operations) so the default hook implementation gets this
wrong. */
return TARGET_80387 || TARGET_SSE_MATH;
}
/* Initialize the GCC target structure. */
#undef TARGET_RETURN_IN_MEMORY
#define TARGET_RETURN_IN_MEMORY ix86_return_in_memory
@ -43895,6 +43907,10 @@ ix86_memmodel_check (unsigned HOST_WIDE_INT val)
#undef TARGET_SPILL_CLASS
#define TARGET_SPILL_CLASS ix86_spill_class
#undef TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P
#define TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P \
ix86_float_exceptions_rounding_supported_p
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-i386.h"