diff options
author | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-06 09:00:36 +0000 |
---|---|---|
committer | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-06 09:00:36 +0000 |
commit | 8cb3a87f23a3950a3c07471ebcacc9c3e93d5428 (patch) | |
tree | 430502bce9663879ba2d9a769bcb295c462a0813 /gcc/config/avr/predicates.md | |
parent | 3f127c8f1275497590d24c8a9db4d286e5076f27 (diff) | |
download | gcc-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-x | gcc/config/avr/predicates.md | 11 |
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") |