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.
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);
}
\f
{
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)
|| 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))
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))