From cecc9ea6ab4d7a4e50b271eaaf2f96b566702585 Mon Sep 17 00:00:00 2001 From: "m.hayes" Date: Sat, 9 Jan 1999 17:10:22 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24592 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 eb9218d..408772c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Sun Jan 10 14:04:51 1999 Michael Hayes + + * 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 * 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 5a6ff22..a4aa23a 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 fd565a3..1a0eec7 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 -- 2.7.4