From dfb31eec9d163d706940539f4a2b0375c752a107 Mon Sep 17 00:00:00 2001
From: Michael Hayes <m.hayes@elec.canterbury.ac.nz>
Date: Sat, 9 Jan 1999 17:10:22 +0000
Subject: [PATCH] c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
 operations in 3rd annulled delay slot.

	* config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
	operations in 3rd annulled delay slot.
	(*lshrqi3_const_set): Disallow c constraint for operand0.
	(modhi3+1, modhi3+2): Set attribute type to multi.
	* config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of
	!= operator.

From-SVN: r24592
---
 gcc/ChangeLog         |  9 +++++++++
 gcc/config/c4x/c4x.c  |  2 +-
 gcc/config/c4x/c4x.md | 18 +++++++++---------
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eb9218d8a518..408772ccc945 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+	* config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
+	operations in 3rd annulled delay slot.
+	(*lshrqi3_const_set): Disallow c constraint for operand0.
+	(modhi3+1, modhi3+2): Set attribute type to multi.
+	* config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
+	!= operator.
+
 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* gansidecl.h: Allow attribute unused on labels only when we are
diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c
index 5a6ff225d935..a4aa23a21a96 100644
--- a/gcc/config/c4x/c4x.c
+++ b/gcc/config/c4x/c4x.c
@@ -2417,7 +2417,7 @@ c4x_S_constraint (op)
 	if (REG_P (op1))
 	  return 1;
 
-	if (GET_CODE (op1) ! = CONST_INT)
+	if (GET_CODE (op1) != CONST_INT)
 	  return 0;
 	
 	/* HImode and HFmode must be offsettable.  */
diff --git a/gcc/config/c4x/c4x.md b/gcc/config/c4x/c4x.md
index fd565a39cddf..1a0eec77f517 100644
--- a/gcc/config/c4x/c4x.md
+++ b/gcc/config/c4x/c4x.md
@@ -369,7 +369,7 @@
 
 (define_attr "in_annul_slot_3" "false,true"
   (if_then_else (and (eq_attr "cpu" "c4x")
-		     (eq_attr "type" "!jump,call,rets,jmpc,unarycc,binarycc,compare,db,dbc,repeat,repeat_top,laj,push,pop,multi"))
+		     (eq_attr "type" "!jump,call,rets,jmpc,db,dbc,repeat,repeat_top,laj,push,pop,multi"))
 		(const_string "true")
 		(const_string "false")))
 
@@ -2480,19 +2480,17 @@
 (define_insn "*lshrqi3_const_set"
   [(set (reg:CC 21)
         (compare:CC
-          (lshiftrt:QI (match_operand:QI 1 "src_operand" "0,0,r,r")
-                       (match_operand:QI 2 "const_int_operand" "n,n,J,J"))
+          (lshiftrt:QI (match_operand:QI 1 "src_operand" "0,r")
+                       (match_operand:QI 2 "const_int_operand" "n,J"))
           (const_int 0)))
-   (set (match_operand:QI 0 "reg_operand" "=?d,?c,d,c")
+   (set (match_operand:QI 0 "reg_operand" "=?d,d")
         (lshiftrt:QI (match_dup 1)
                      (match_dup 2)))]
   "valid_operands (LSHIFTRT, operands, QImode)"
   "@
    lsh\\t%n2,%0
-   lsh\\t%n2,%0
-   lsh3\\t%n2,%1,%0
    lsh3\\t%n2,%1,%0"
-  [(set_attr "type" "binarycc,binarycc,binarycc,binarycc")])
+  [(set_attr "type" "binarycc,binarycc")])
 
 (define_insn "*lshrqi3_nonconst_clobber"
   [(set (match_operand:QI 0 "reg_operand" "=d,?d,d,c,?c,c")
@@ -6192,7 +6190,8 @@
                    (const_int -1)))
      (clobber (reg:CC_NOOV 21))])]
   "! c4x_label_conflict (insn, operands[2], operands[1])"
-  "db%I3\\t%0,%l1\\n\\tb%3\\t%l2")
+  "db%I3\\t%0,%l1\\n\\tb%3\\t%l2"
+  [(set_attr "type" "multi")])
 
 (define_peephole
   [(set (pc) (if_then_else (match_operator 3 "comparison_operator"
@@ -6211,7 +6210,8 @@
                    (const_int -1)))
      (clobber (reg:CC_NOOV 21))])]
   "! c4x_label_conflict (insn, operands[2], operands[1])"
-  "db%I3\\t%0,%l1\\n\\tb%3\\t%l2")
+  "db%I3\\t%0,%l1\\n\\tb%3\\t%l2"
+  [(set_attr "type" "multi")])
 
 ;
 ; Peepholes to convert 'call label; rets' into jump label
-- 
GitLab