[Patch] Teach genrecog/genoutput that scratch registers require write constraint modifiers

Andreas Schwab schwab@linux-m68k.org
Sat Sep 20 07:10:00 GMT 2014


Tested on ia64-suse-linux and checked in as obvious.

Andreas.

	* config/ia64/ia64.md: Remove constraints from define_split
	patterns.

diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 986ef02..572870f 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -2565,7 +2565,7 @@
   [(set (match_operand:TI 0 "register_operand" "")
 	(minus:TI (match_operand:TI 1 "register_operand" "")
 		  (match_operand:TI 2 "register_operand" "")))
-   (clobber (match_scratch:BI 3 "=&c"))]
+   (clobber (match_scratch:BI 3 ""))]
   "reload_completed"
   [(set (match_dup 0) (minus:DI (match_dup 1) (match_dup 2)))
    (set (match_dup 3) (ltu:BI (match_dup 1) (match_dup 0)))
@@ -2587,7 +2587,7 @@
   [(set (match_operand:TI 0 "register_operand" "")
 	(minus:TI (match_operand:TI 1 "immediate_operand" "")
 		  (match_operand:TI 2 "register_operand" "")))
-   (clobber (match_scratch:BI 3 "=&c"))]
+   (clobber (match_scratch:BI 3 ""))]
   "reload_completed && satisfies_constraint_K (operands[1])"
   [(set (match_dup 0) (minus:DI (match_dup 1) (match_dup 2)))
    (set (match_dup 3) (gtu:BI (match_dup 0) (match_dup 1)))
@@ -4152,7 +4152,7 @@
   [(set (match_operand:DI 0 "register_operand" "")
 	(if_then_else:DI
 	  (match_operator 4 "predicate_operator"
-	    [(match_operand:BI 1 "register_operand" "c,c")
+	    [(match_operand:BI 1 "register_operand" "")
 	     (const_int 0)])
 	  (neg:DI (match_operand:DI 2 "gr_reg_or_22bit_operand" ""))
 	  (match_operand:DI 3 "gr_reg_or_22bit_operand" "")))]
@@ -4167,7 +4167,7 @@
   [(set (match_operand:DI 0 "register_operand" "")
 	(if_then_else:DI
 	  (match_operator 4 "predicate_operator"
-	    [(match_operand:BI 1 "register_operand" "c,c")
+	    [(match_operand:BI 1 "register_operand" "")
 	     (const_int 0)])
 	  (neg:DI (match_operand:DI 2 "gr_reg_or_22bit_operand" ""))
 	  (match_operand:DI 3 "gr_reg_or_22bit_operand" "")))]
@@ -4220,7 +4220,7 @@
   [(set (match_operand:SI 0 "register_operand" "")
 	(if_then_else:SI
 	  (match_operator 4 "predicate_operator"
-	    [(match_operand:BI 1 "register_operand" "c,c")
+	    [(match_operand:BI 1 "register_operand" "")
 	     (const_int 0)])
 	  (neg:SI (match_operand:SI 2 "gr_reg_or_22bit_operand" ""))
 	  (match_operand:SI 3 "gr_reg_or_22bit_operand" "")))]
@@ -4235,7 +4235,7 @@
   [(set (match_operand:SI 0 "register_operand" "")
 	(if_then_else:SI
 	  (match_operator 4 "predicate_operator"
-	    [(match_operand:BI 1 "register_operand" "c,c")
+	    [(match_operand:BI 1 "register_operand" "")
 	     (const_int 0)])
 	  (neg:SI (match_operand:SI 2 "gr_reg_or_22bit_operand" ""))
 	  (match_operand:SI 3 "gr_reg_or_22bit_operand" "")))]
-- 
2.1.0

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-patches mailing list