OSDN Git Service

2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
authorshenders <shenders@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 May 2011 17:01:01 +0000 (17:01 +0000)
committershenders <shenders@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 May 2011 17:01:01 +0000 (17:01 +0000)
        PR target/47951
        * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
        inputs match the output.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173261 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/bfin/bfin.md

index c215d6b..114de89 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
+
+        PR target/47951
+        * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
+        inputs match the output.
+
 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
 
        PR target/47955
index 3fac01c..4d22df5 100644 (file)
 
 (define_insn "loop_end"
   [(set (pc)
-       (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+a*d,*b*v*f,m")
+       (if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,0,0")
                          (const_int 1))
                      (label_ref (match_operand 1 "" ""))
                      (pc)))
-   (set (match_dup 0)
-       (plus (match_dup 0)
+   (set (match_operand:SI 0 "nonimmediate_operand" "=a*d,*b*v*f,m")
+       (plus (match_dup 2)
              (const_int -1)))
    (unspec [(const_int 0)] UNSPEC_LSETUP_END)
-   (clobber (match_scratch:SI 2 "=X,&r,&r"))]
+   (clobber (match_scratch:SI 3 "=X,&r,&r"))]
   ""
   "@
    /* loop end %0 %l1 */