]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Summary: m68k: add missing early clobber in beq0_di, bne0_di patterns
authorAndreas Schwab <schwab@linux-m68k.org>
Sat, 31 May 2014 12:08:25 +0000 (12:08 +0000)
committerAndreas Schwab <schwab@gcc.gnu.org>
Sat, 31 May 2014 12:08:25 +0000 (12:08 +0000)
* config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
a separate alternative where the scratch operand 2 is marked as
early clobber.

From-SVN: r211104

gcc/ChangeLog
gcc/config/m68k/m68k.md

index 504fdfb74eb8eec1b241e0877d58e4387ea65f3c..60ef5c6a5ba0d8ee8016607e6ef51c4411a6f044 100644 (file)
@@ -1,3 +1,9 @@
+2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
+       a separate alternative where the scratch operand 2 is marked as
+       early clobber.
+
 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
 
        * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
index 72c11f592db8b2c49a8dcb192f1907df8a8f6c3b..d088764fab6c80f3a0187461630f944e7a0ffb94 100644 (file)
 
 (define_insn "beq0_di"
   [(set (pc)
-    (if_then_else (eq (match_operand:DI 0 "general_operand" "d*ao,<>")
+    (if_then_else (eq (match_operand:DI 0 "general_operand" "d*a,o,<>")
             (const_int 0))
-        (label_ref (match_operand 1 "" ","))
+        (label_ref (match_operand 1 "" ",,"))
         (pc)))
-   (clobber (match_scratch:SI 2 "=d,d"))]
+   (clobber (match_scratch:SI 2 "=d,&d,d"))]
   ""
 {
   CC_STATUS_INIT;
-  if (which_alternative == 1)
+  if (which_alternative == 2)
     return "move%.l %0,%2\;or%.l %0,%2\;jeq %l1";
   if ((cc_prev_status.value1
       && rtx_equal_p (cc_prev_status.value1, operands[0]))
 
 (define_insn "bne0_di"
   [(set (pc)
-    (if_then_else (ne (match_operand:DI 0 "general_operand" "do,*a")
+    (if_then_else (ne (match_operand:DI 0 "general_operand" "d,o,*a")
             (const_int 0))
-        (label_ref (match_operand 1 "" ","))
+        (label_ref (match_operand 1 "" ",,"))
         (pc)))
-   (clobber (match_scratch:SI 2 "=d,X"))]
+   (clobber (match_scratch:SI 2 "=d,&d,X"))]
   ""
 {
   if ((cc_prev_status.value1