diff options
author | obrien <obrien@FreeBSD.org> | 2002-12-04 15:42:16 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-12-04 15:42:16 +0000 |
commit | 7a1080fa5c329ea8a9505e51ce151719955bcfa2 (patch) | |
tree | 78b77287e56e2a87be73638176124be85a8fc6c7 /contrib/gcc/config/rs6000 | |
parent | ef3bb1318428b8cfb1c8287f61b9b1f23f9bf0b5 (diff) | |
download | FreeBSD-src-7a1080fa5c329ea8a9505e51ce151719955bcfa2.zip FreeBSD-src-7a1080fa5c329ea8a9505e51ce151719955bcfa2.tar.gz |
Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)
Diffstat (limited to 'contrib/gcc/config/rs6000')
-rw-r--r-- | contrib/gcc/config/rs6000/rs6000.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/contrib/gcc/config/rs6000/rs6000.c b/contrib/gcc/config/rs6000/rs6000.c index ad9df44..2adb119 100644 --- a/contrib/gcc/config/rs6000/rs6000.c +++ b/contrib/gcc/config/rs6000/rs6000.c @@ -2011,6 +2011,7 @@ rs6000_legitimate_address (mode, x, reg_ok_strict) if (LEGITIMATE_INDIRECT_ADDRESS_P (x, reg_ok_strict)) return 1; if ((GET_CODE (x) == PRE_INC || GET_CODE (x) == PRE_DEC) + && !ALTIVEC_VECTOR_MODE (mode) && TARGET_UPDATE && LEGITIMATE_INDIRECT_ADDRESS_P (XEXP (x, 0), reg_ok_strict)) return 1; @@ -6920,7 +6921,7 @@ rs6000_reverse_condition (mode, code) { /* Reversal of FP compares takes care -- an ordered compare becomes an unordered compare and vice versa. */ - if (mode == CCFPmode) + if (mode == CCFPmode && !flag_unsafe_math_optimizations) return reverse_condition_maybe_unordered (code); else return reverse_condition (code); @@ -7073,7 +7074,14 @@ output_cbranch (op, label, reversed, insn) reverse_condition_maybe_unordered here always but this makes the resulting assembler clearer. */ if (really_reversed) - code = rs6000_reverse_condition (mode, code); + { + /* Reversal of FP compares takes care -- an ordered compare + becomes an unordered compare and vice versa. */ + if (mode == CCFPmode) + code = reverse_condition_maybe_unordered (code); + else + code = reverse_condition (code); + } switch (code) { |