diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2008-08-12 13:25:22 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2008-08-12 13:25:22 +0000 |
commit | 4099e2c2bb7e81926d3ee91a856834ee7672c694 (patch) | |
tree | 1a92af168da8700726521cc728ffef015dec9823 /gcc/fold-const.c | |
parent | e0bddf109cc33590570b30eceea42bb6fcdea8ec (diff) | |
download | gcc-4099e2c2bb7e81926d3ee91a856834ee7672c694.zip gcc-4099e2c2bb7e81926d3ee91a856834ee7672c694.tar.gz gcc-4099e2c2bb7e81926d3ee91a856834ee7672c694.tar.bz2 |
real.h (struct real_format): New member has_sign_dependent_rounding.
* real.h (struct real_format): New member has_sign_dependent_rounding.
* real.c (ieee_single_format, mips_single_format, motorola_single_format,
spu_single_format, ieee_double_format, mips_double_format,
motorola_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_128_format,
ieee_extended_intel_96_round_53_format, ibm_extended_format,
mips_extended_format, ieee_quad_format, mips_quad_format,
vax_f_format, vax_d_format, vax_g_format): Initialize it.
* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
* config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
(ROUND_TOWARDS_ZERO): Likewise.
* real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
(FLOAT_MODE_FORMAT): New macro.
(REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
(MODE_COMPOSITE_P): ... this new macro.
(MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
* machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
* flags.h: Include "real.h".
* fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
REAL_MODE_FORMAT_COMPOSITE_P.
* simplify-rtx.c (simplify_const_binary_operation): Likewise.
* doc/tm.texi (Storage Layout): Remove documentation of
MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
they only apply to libgcc2.a.
From-SVN: r139016
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index cb693d6..cae45b5 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1885,8 +1885,7 @@ const_binop (enum tree_code code, tree arg1, tree arg2, int notrunc) flag_rounding_math is set, or if GCC's software emulation is unable to accurately represent the result. */ if ((flag_rounding_math - || (REAL_MODE_FORMAT_COMPOSITE_P (mode) - && !flag_unsafe_math_optimizations)) + || (MODE_COMPOSITE_P (mode) && !flag_unsafe_math_optimizations)) && (inexact || !real_identical (&result, &value))) return NULL_TREE; |