From ca5adc63bdd7dc70640d757fedf72d09ba405c5d Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Mon, 12 Feb 2001 19:47:11 +0000 Subject: [PATCH] rs6000.c (rs6000_float_const): Remove warning. * config/rs6000/rs6000.c (rs6000_float_const): Remove warning. (setup_incoming_varargs): Remove warning. * config/rs6000/rs6000.c (validate_condition_mode): When flag_fast_math, allow floating-point conditionals to be reversed. (rs6000_generate_compare): When flag_fast_math, don't generate cror operations for FP conditionals. From-SVN: r39610 --- gcc/ChangeLog | 8 ++++++++ gcc/config/rs6000/rs6000.c | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c2bac9610e..98e0a9f5b46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2001-02-12 Geoffrey Keating + * config/rs6000/rs6000.c (rs6000_float_const): Remove warning. + (setup_incoming_varargs): Remove warning. + + * config/rs6000/rs6000.c (validate_condition_mode): When + flag_fast_math, allow floating-point conditionals to be reversed. + (rs6000_generate_compare): When flag_fast_math, don't generate + cror operations for FP conditionals. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle -mcall-i960. (ASM_SPEC): Likewise. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 2640c60c120..5f14dcdd1dc 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -471,7 +471,8 @@ rs6000_float_const (string, mode) const char *string; enum machine_mode mode; { - REAL_VALUE_TYPE value = REAL_VALUE_ATOF (string, mode); + REAL_VALUE_TYPE value; + value = REAL_VALUE_ATOF (string, mode); return immed_real_const_1 (value, mode); } @@ -2206,7 +2207,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl) { CUMULATIVE_ARGS next_cum; int reg_size = TARGET_32BIT ? 4 : 8; - rtx save_area, mem; + rtx save_area = NULL_RTX, mem; int first_reg_offset, set; if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) @@ -3237,8 +3238,9 @@ validate_condition_mode (code, mode) || code == UNGE || code == UNLE)) abort(); - /* These should never be generated. */ + /* These should never be generated except for fast_math. */ if (mode == CCFPmode + && ! flag_fast_math && (code == LE || code == GE || code == UNEQ || code == LTGT || code == UNGT || code == UNLT)) @@ -4451,8 +4453,10 @@ rs6000_generate_compare (code) rs6000_compare_op0, rs6000_compare_op1))); - /* Some kinds of FP comparisons need an OR operation. */ + /* Some kinds of FP comparisons need an OR operation; + except that for fast_math we don't bother. */ if (rs6000_compare_fp_p + && ! flag_fast_math && (code == LE || code == GE || code == UNEQ || code == LTGT || code == UNGT || code == UNLT)) -- 2.30.2