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
This commit is contained in:
Geoffrey Keating 2001-02-12 19:47:11 +00:00 committed by Geoffrey Keating
parent c36ae96c0c
commit ca5adc63bd
2 changed files with 16 additions and 4 deletions

View File

@ -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.

View File

@ -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))