Hi Guys,

  I am applying the patch below to fix building libgcc for the fr30-elf
  target.  The problem was that the comparison patterns were applying a
  mode to the operator which prevents them from matching rtl generated
  by the middle-end.

Cheers
  Nick

gcc/ChangeLog
2012-08-17  Nick Clifton  <ni...@redhat.com>

        * config/fr30/fr30.md  (cbranchsi4): Remove mode from
        comparison.
        (branch_true): Likewise.
        (branch_false): Likewise.

Index: gcc/config/fr30/fr30.md
===================================================================
--- gcc/config/fr30/fr30.md     (revision 190466)
+++ gcc/config/fr30/fr30.md     (working copy)
@@ -940,7 +940,7 @@
        (compare:CC (match_operand:SI 1 "register_operand"  "")
                    (match_operand:SI 2 "nonmemory_operand" "")))
    (set (pc)
-       (if_then_else (match_operator:CC 0 "ordered_comparison_operator"
+       (if_then_else (match_operator 0 "ordered_comparison_operator"
                       [(reg:CC 16) (const_int 0)])
                      (label_ref (match_operand 3 "" ""))
                      (pc)))]
@@ -980,9 +980,9 @@
 
 (define_insn "*branch_true"
   [(set (pc)
-       (if_then_else (match_operator:CC 0 "comparison_operator"
-                                        [(reg:CC 16)
-                                         (const_int 0)])
+       (if_then_else (match_operator 0 "comparison_operator"
+                                     [(reg:CC 16)
+                                      (const_int 0)])
                      (label_ref (match_operand 1 "" ""))
                      (pc)))]
   ""
@@ -1034,9 +1034,9 @@
 ;; branch occurs if the test is false, so the %B operator is used.
 (define_insn "*branch_false"
   [(set (pc)
-       (if_then_else (match_operator:CC 0 "comparison_operator"
-                                        [(reg:CC 16)
-                                         (const_int 0)])
+       (if_then_else (match_operator 0 "comparison_operator"
+                                     [(reg:CC 16)
+                                      (const_int 0)])
                      (pc)
                      (label_ref (match_operand 1 "" ""))))]
   ""

Reply via email to