summaryrefslogtreecommitdiff
path: root/gcc/config/avr/predicates.md
diff options
context:
space:
mode:
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-06 09:00:36 +0000
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-06 09:00:36 +0000
commit8cb3a87f23a3950a3c07471ebcacc9c3e93d5428 (patch)
tree430502bce9663879ba2d9a769bcb295c462a0813 /gcc/config/avr/predicates.md
parent3f127c8f1275497590d24c8a9db4d286e5076f27 (diff)
downloadgcc-8cb3a87f23a3950a3c07471ebcacc9c3e93d5428.tar.gz
PR target/42210
* config/avr/predicates.md (const1_operand, const_0_to_7_operand): New predicates. * config/avr/avr.md ("insv"): New insn expander. ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io", "*insv.not.io", "*insv.reg"): New insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174685 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/avr/predicates.md')
-rwxr-xr-xgcc/config/avr/predicates.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/avr/predicates.md b/gcc/config/avr/predicates.md
index a7cc2ba052f..056a1650b79 100755
--- a/gcc/config/avr/predicates.md
+++ b/gcc/config/avr/predicates.md
@@ -62,6 +62,17 @@
(and (match_code "const_int,const_double")
(match_test "op == CONST0_RTX (mode)")))
+;; Return 1 if OP is the one constant integer for MODE.
+(define_predicate "const1_operand"
+ (and (match_code "const_int")
+ (match_test "op == CONST1_RTX (mode)")))
+
+
+;; Return 1 if OP is constant integer 0..7 for MODE.
+(define_predicate "const_0_to_7_operand"
+ (and (match_code "const_int")
+ (match_test "IN_RANGE (INTVAL (op), 0, 7)")))
+
;; Returns true if OP is either the constant zero or a register.
(define_predicate "reg_or_0_operand"
(ior (match_operand 0 "register_operand")