summaryrefslogtreecommitdiff
path: root/gcc/config/stormy16/stormy16.md
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-11-19 09:47:23 +0000
committerNick Clifton <nickc@gcc.gnu.org>2004-11-19 09:47:23 +0000
commitf99652b5e31bf860a7a007e71e67796f047a3512 (patch)
tree8ca78644de58813f1f589e1ff2f999bc240d9ec5 /gcc/config/stormy16/stormy16.md
parente648d85ab2e419200e7424d1d744030c7075b013 (diff)
downloadgcc-f99652b5e31bf860a7a007e71e67796f047a3512.tar.gz
config/stormy16/stormy16.c (combine_bnp): Add code to handle zero_extension and lshiftrt insns.
config/stormy16/stormy16.c (combine_bnp): Add code to handle zero_extension and lshiftrt insns. Replace uses of XEXP(...) with either SET_DEST() or SET_SRC() where appropriate. config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns to handle bp and bn insn patterns with a zero_extend rtx inside them. From-SVN: r90898
Diffstat (limited to 'gcc/config/stormy16/stormy16.md')
-rw-r--r--gcc/config/stormy16/stormy16.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/config/stormy16/stormy16.md b/gcc/config/stormy16/stormy16.md
index 13474bee032..14dd7902188 100644
--- a/gcc/config/stormy16/stormy16.md
+++ b/gcc/config/stormy16/stormy16.md
@@ -1268,6 +1268,19 @@
[(set_attr "length" "4")
(set_attr "psw_operand" "nop")])
+(define_insn "*bclrx3"
+ [(set (pc)
+ (if_then_else (eq:HI (and:HI (zero_extend:HI (match_operand:QI 1 "xstormy16_below100_operand" "W"))
+ (match_operand:HI 2 "immediate_operand" "i"))
+ (const_int 0))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))
+ (clobber (match_operand:BI 3 "" "=y"))]
+ ""
+ "bn %1,%B2,%l0"
+ [(set_attr "length" "4")
+ (set_attr "psw_operand" "nop")])
+
(define_insn "*bclr7"
[(set (pc)
(if_then_else (xor:HI (lshiftrt:HI (subreg:HI
@@ -1320,6 +1333,19 @@
[(set_attr "length" "4")
(set_attr "psw_operand" "nop")])
+(define_insn "*bsetx3"
+ [(set (pc)
+ (if_then_else (ne:HI (and:HI (zero_extend:HI (match_operand:QI 1 "xstormy16_below100_operand" "W"))
+ (match_operand:HI 2 "immediate_operand" "i"))
+ (const_int 0))
+ (label_ref (match_operand 0 "" ""))
+ (pc)))
+ (clobber (match_operand:BI 3 "" "=y"))]
+ ""
+ "bp %1,%B2,%l0"
+ [(set_attr "length" "4")
+ (set_attr "psw_operand" "nop")])
+
(define_insn "*bset7"
[(set (pc)
(if_then_else (lshiftrt:HI (subreg:HI (match_operand:QI 1 "xstormy16_below100_operand" "W") 0)