aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@redhat.com>2001-02-12 19:47:11 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2001-02-12 19:47:11 +0000
commitca5adc63bdd7dc70640d757fedf72d09ba405c5d (patch)
tree740b366956af828d9ed97f4d3c2c861bc6db7031 /gcc
parentc36ae96c0c4883dc8e36e1b58336ae89a8dcc2ad (diff)
downloadgcc-ca5adc63bdd7dc70640d757fedf72d09ba405c5d.zip
gcc-ca5adc63bdd7dc70640d757fedf72d09ba405c5d.tar.gz
gcc-ca5adc63bdd7dc70640d757fedf72d09ba405c5d.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rs6000.c12
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7c2bac9..98e0a9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2001-02-12 Geoffrey Keating <geoffk@redhat.com>
+ * 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 2640c60..5f14dcd 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))