]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.md: Document why a pattern is not available.
authorAldy Hernandez <aldyh@redhat.com>
Mon, 12 Apr 2004 00:52:24 +0000 (00:52 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Mon, 12 Apr 2004 00:52:24 +0000 (00:52 +0000)
* config/rs6000/rs6000.md: Document why a pattern is not
available.

* config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
of floats on the E500.
(branch_positive_comparison_operator): Do not allow NE even on the
E500.

From-SVN: r80617

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

index 1f41f587f4a04462ae360395a98b217c84dc501b..94c8ab5dcdc48abeb22f68715fd7fc761960b1fd 100644 (file)
@@ -1,3 +1,13 @@
+2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.md: Document why a pattern is not
+       available.
+
+       * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
+       of floats on the E500.
+       (branch_positive_comparison_operator): Do not allow NE even on the
+       E500.
+
 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
 
        * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
index ada5aab7d2a0baa392ed34fd01b890bd7b1e2a4f..b3a73648bd7a80ffe7f201afd3b9f19b3d945b9d 100644 (file)
@@ -8376,7 +8376,6 @@ branch_positive_comparison_operator (rtx op, enum machine_mode mode)
 
   code = GET_CODE (op);
   return (code == EQ || code == LT || code == GT
-         || (TARGET_E500 && TARGET_HARD_FLOAT && !TARGET_FPRS && code == NE)
          || code == LTU || code == GTU
          || code == UNORDERED);
 }
@@ -10195,6 +10194,9 @@ rs6000_emit_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond)
        return rs6000_emit_int_cmove (dest, op, true_cond, false_cond);
       return 0;
     }
+  else if (TARGET_E500 && TARGET_HARD_FLOAT && !TARGET_FPRS
+          && GET_MODE_CLASS (compare_mode) == MODE_FLOAT)
+    return 0;
 
   /* Eliminate half of the comparisons by switching operands, this
      makes the remaining code simpler.  */
index 921ed633eb3ed66876780fc7e566bd6e9367ae6f..4e965487d7ea25ecf3228e22ae2075c095496961 100644 (file)
                                                      "cc_reg_operand" "0,y")
                                       (const_int 0)])
                      (const_int 0)))]
+  ;; This pattern is not available to SPE because the CR bits on an FP
+  ;; compare are different than traditional PPC.
   "!TARGET_SPE"
   "{crnor %E0,%j1,%j1|crnot %E0,%j1}"
   [(set_attr "type" "cr_logical,delayed_cr")])