Commit dfb31eec by Michael Hayes Committed by Michael Hayes

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
parent 377d4316
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> 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 * gansidecl.h: Allow attribute unused on labels only when we are
......
...@@ -2417,7 +2417,7 @@ c4x_S_constraint (op) ...@@ -2417,7 +2417,7 @@ c4x_S_constraint (op)
if (REG_P (op1)) if (REG_P (op1))
return 1; return 1;
if (GET_CODE (op1) ! = CONST_INT) if (GET_CODE (op1) != CONST_INT)
return 0; return 0;
/* HImode and HFmode must be offsettable. */ /* HImode and HFmode must be offsettable. */
......
...@@ -369,7 +369,7 @@ ...@@ -369,7 +369,7 @@
(define_attr "in_annul_slot_3" "false,true" (define_attr "in_annul_slot_3" "false,true"
(if_then_else (and (eq_attr "cpu" "c4x") (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 "true")
(const_string "false"))) (const_string "false")))
...@@ -2480,19 +2480,17 @@ ...@@ -2480,19 +2480,17 @@
(define_insn "*lshrqi3_const_set" (define_insn "*lshrqi3_const_set"
[(set (reg:CC 21) [(set (reg:CC 21)
(compare:CC (compare:CC
(lshiftrt:QI (match_operand:QI 1 "src_operand" "0,0,r,r") (lshiftrt:QI (match_operand:QI 1 "src_operand" "0,r")
(match_operand:QI 2 "const_int_operand" "n,n,J,J")) (match_operand:QI 2 "const_int_operand" "n,J"))
(const_int 0))) (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) (lshiftrt:QI (match_dup 1)
(match_dup 2)))] (match_dup 2)))]
"valid_operands (LSHIFTRT, operands, QImode)" "valid_operands (LSHIFTRT, operands, QImode)"
"@ "@
lsh\\t%n2,%0 lsh\\t%n2,%0
lsh\\t%n2,%0
lsh3\\t%n2,%1,%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" (define_insn "*lshrqi3_nonconst_clobber"
[(set (match_operand:QI 0 "reg_operand" "=d,?d,d,c,?c,c") [(set (match_operand:QI 0 "reg_operand" "=d,?d,d,c,?c,c")
...@@ -6192,7 +6190,8 @@ ...@@ -6192,7 +6190,8 @@
(const_int -1))) (const_int -1)))
(clobber (reg:CC_NOOV 21))])] (clobber (reg:CC_NOOV 21))])]
"! c4x_label_conflict (insn, operands[2], operands[1])" "! 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 (define_peephole
[(set (pc) (if_then_else (match_operator 3 "comparison_operator" [(set (pc) (if_then_else (match_operator 3 "comparison_operator"
...@@ -6211,7 +6210,8 @@ ...@@ -6211,7 +6210,8 @@
(const_int -1))) (const_int -1)))
(clobber (reg:CC_NOOV 21))])] (clobber (reg:CC_NOOV 21))])]
"! c4x_label_conflict (insn, operands[2], operands[1])" "! 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 ; Peepholes to convert 'call label; rets' into jump label
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment