]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/7133 (PPC: unrecognizable insn)
authorDale Johannesen <dalej@apple.com>
Mon, 28 Oct 2002 20:39:53 +0000 (20:39 +0000)
committerFranz Sirl <sirl@gcc.gnu.org>
Mon, 28 Oct 2002 20:39:53 +0000 (20:39 +0000)
2002-10-21  Dale Johannesen  <dalej@apple.com>

PR target/7133
* config/rs6000/rs6000.c (rs6000_reverse_condition): Handle
unsafe math reversals correctly for RTL generation.
(output_cbranch):  Replace rs6000_reverse_condition call
by its former definition.

From-SVN: r58604

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index a6ad5b75f7c7c7322a4c0ae766306da0fc1cddbc..9229d2adb427af30e8af5ce08b3403a5922ddc97 100644 (file)
@@ -1,3 +1,11 @@
+2002-10-21  Dale Johannesen  <dalej@apple.com>
+
+       PR target/7133
+       * config/rs6000/rs6000.c (rs6000_reverse_condition): Handle
+       unsafe math reversals correctly for RTL generation.
+       (output_cbranch):  Replace rs6000_reverse_condition call
+       by its former definition.
+
 Sun Oct 27 10:12:27 CET 2002  Jan Hubicka  <jh@suse.cz>
 
        * linux64.h (DEFAULT_PCC_STRUCT_RETURN):  Define.
index ad9df44dbc884ed6f97cb557ed488dfc0cbdc7b8..7d9ae2b28be5737499a5f4af8352171341c496c2 100644 (file)
@@ -6920,7 +6920,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 +7073,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)
     {