aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>1998-10-20 03:01:10 +0000
committerMichael Hayes <m.hayes@gcc.gnu.org>1998-10-20 03:01:10 +0000
commit95cb02033413e492b43f3d74192cf235d5a2c58c (patch)
treea169d3c7ef2a733bc6861067cbaa14eacddcb54a /gcc/config
parentc171c2878ddadedf507fad4ebccaa897d817ff5c (diff)
downloadgcc-95cb02033413e492b43f3d74192cf235d5a2c58c.zip
gcc-95cb02033413e492b43f3d74192cf235d5a2c58c.tar.gz
gcc-95cb02033413e492b43f3d74192cf235d5a2c58c.tar.bz2
c4x.md (repeat_block_top, [...]): Deleted.
* config/c4x/c4x.md (repeat_block_top, repeat_block_end, repeat_block_filler): Deleted. (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): Condition code not set if destination register from 'c' class. (*subbqi3_carry_clobber): Fix typo. From-SVN: r23195
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/c4x/c4x.md65
1 files changed, 10 insertions, 55 deletions
diff --git a/gcc/config/c4x/c4x.md b/gcc/config/c4x/c4x.md
index bfcc7b0..58033f0 100644
--- a/gcc/config/c4x/c4x.md
+++ b/gcc/config/c4x/c4x.md
@@ -1699,7 +1699,7 @@
(define_insn "*subqi3_carry_clobber"
[(set (match_operand:QI 0 "reg_operand" "=d,?d,d,d,c,?c,c,c")
(minus:QI (match_operand:QI 1 "src_operand" "rR,rS<>,0,g,rR,rS<>,0,g")
- (match_operand:QI 2 "src_operand" "JR,rS<>,0,g,JR,rS<>,g,0")))
+ (match_operand:QI 2 "src_operand" "JR,rS<>,g,0,JR,rS<>,g,0")))
(use (reg:CC_NOOV 21))
(clobber (reg:CC_NOOV 21))]
"valid_operands (MINUS, operands, QImode)"
@@ -2353,21 +2353,18 @@
(define_insn "*ashlqi3_set"
[(set (reg:CC 21)
(compare:CC
- (ashift:QI (match_operand:QI 1 "src_operand" "rR,rS<>,0,rR,rS<>,0")
- (match_operand:QI 2 "src_operand" "JR,rS<>,g,JR,rS<>,g"))
+ (ashift:QI (match_operand:QI 1 "src_operand" "rR,rS<>,0")
+ (match_operand:QI 2 "src_operand" "JR,rS<>,g"))
(const_int 0)))
- (set (match_operand:QI 0 "reg_operand" "=d,?d,d,c,?c,c")
+ (set (match_operand:QI 0 "reg_operand" "=d,?d,d")
(ashift:QI (match_dup 1)
(match_dup 2)))]
"valid_operands (ASHIFT, operands, QImode)"
"@
ash3\\t%2,%1,%0
ash3\\t%2,%1,%0
- ash\\t%2,%0
- ash3\\t%2,%1,%0
- ash3\\t%2,%1,%0
ash\\t%2,%0"
- [(set_attr "type" "binarycc,binarycc,binarycc,binary,binary,binary")])
+ [(set_attr "type" "binarycc,binarycc,binarycc")])
; Default to int16 data attr.
; This is only used by lshrhi3_reg where we need a LSH insn that will
@@ -2488,19 +2485,17 @@
(define_insn "*ashrqi3_const_set"
[(set (reg:CC 21)
(compare:CC
- (ashiftrt:QI (match_operand:QI 1 "src_operand" "0,0,r,r")
- (match_operand:QI 2 "const_int_operand" "n,n,J,J"))
+ (ashiftrt: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")
(ashiftrt:QI (match_dup 1)
(match_dup 2)))]
"valid_operands (ASHIFTRT, operands, QImode)"
"@
ash\\t%n2,%0
- ash\\t%n2,%0
- ash3\\t%n2,%1,%0
ash3\\t%n2,%1,%0"
- [(set_attr "type" "binarycc,binarycc,binarycc,binarycc")])
+ [(set_attr "type" "binarycc,binarycc")])
(define_insn "*ashrqi3_nonconst_clobber"
[(set (match_operand:QI 0 "reg_operand" "=d,?d,d,c,?c,c")
@@ -4520,46 +4515,6 @@
"
[(set_attr "type" "repeat_top")])
-; operand 0 is the loop depth
-; operand 1 is the loop count
-; operand 2 is the start label
-; operand 3 is the end label
-(define_expand "repeat_block_top"
- [(set (reg:QI 27) (match_operand:QI 1 "src_operand" ""))
- (use (match_operand:QI 0 "immediate_operand" ""))
- (parallel[(set (reg:QI 25) (label_ref (match_operand 2 "" "")))
- (set (reg:QI 26) (label_ref (match_operand 3 "" "")))])]
- ""
- "if (CONSTANT_P (operands[1])
- && !const_operand (operands[1], QImode))
- operands[1] = force_const_mem (QImode, operands[1]);"
- )
-
-; operand 0 is the loop depth
-(define_insn "repeat_block_end"
- [(set (pc)
- (if_then_else (ne (reg:QI 27) (const_int 0))
- (label_ref (match_operand 1 "" ""))
- (pc)))
- (use (match_operand:QI 0 "immediate_operand" ""))
- (use (reg:QI 25))
- (use (reg:QI 26))
- (set (reg:QI 27)
- (plus:QI (reg:QI 27)
- (const_int -1)))]
- ""
- "*
- return c4x_rptb_nop_p(insn) ? \"nop\" : \"\";"
- [(set_attr "type" "repeat")])
-
-; to prevent labels being coalesced and to leave a space to sink insns
-; out of a repeat block loop.
-(define_insn "repeat_block_filler"
- [(unspec [(const_int 0)] 7)]
- ""
- ""
- [(set_attr "type" "repeat")])
-
(define_insn "rptb_end"
[(set (pc)
@@ -4580,7 +4535,7 @@
(define_expand "decrement_and_branch_on_count"
[(parallel [(set (pc)
- (if_then_else (ge (match_operand:QI 0 "rc_reg_operand" "v")
+ (if_then_else (ge (match_operand:QI 0 "rc_reg_operand" "")
(const_int 0))
(label_ref (match_operand 1 "" ""))
(pc)))