diff options
author | Edgar E. Iglesias <edgar.iglesias@gmail.com> | 2013-03-04 15:26:59 +0000 |
---|---|---|
committer | Michael Eager <eager@gcc.gnu.org> | 2013-03-04 15:26:59 +0000 |
commit | 82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754 (patch) | |
tree | c0d53ae6de09175fb3346d0826144e7ed6e9e9ef /gcc/config/microblaze | |
parent | 409b1de4e1bf18498abc64fb9f990f61c8010640 (diff) | |
download | gcc-82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754.zip gcc-82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754.tar.gz gcc-82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754.tar.bz2 |
Dont allow unsupported target rtx into call_internal1
* config/microblaze/predicates.md (call_insn_simple_operand):
New predicate for supported rtx code types.
* config/microblaze/microblaze.md (call_internal1): Use
call_insn_simple_operand predicate.
From-SVN: r196433
Diffstat (limited to 'gcc/config/microblaze')
-rw-r--r-- | gcc/config/microblaze/microblaze.md | 2 | ||||
-rw-r--r-- | gcc/config/microblaze/predicates.md | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md index 9f17733..78c033e 100644 --- a/gcc/config/microblaze/microblaze.md +++ b/gcc/config/microblaze/microblaze.md @@ -2031,7 +2031,7 @@ (set_attr "length" "4")]) (define_insn "call_internal1" - [(call (mem (match_operand:SI 0 "call_insn_operand" "ri")) + [(call (mem (match_operand:SI 0 "call_insn_simple_operand" "ri")) (match_operand:SI 1 "" "i")) (clobber (reg:SI R_SR))] "" diff --git a/gcc/config/microblaze/predicates.md b/gcc/config/microblaze/predicates.md index 9bf9810..e6e9983 100644 --- a/gcc/config/microblaze/predicates.md +++ b/gcc/config/microblaze/predicates.md @@ -49,6 +49,10 @@ (define_predicate "call_insn_operand" (match_test "CALL_INSN_OP (op)")) +(define_predicate "call_insn_simple_operand" + (and (match_test "CALL_INSN_OP (op)") + (match_test "GET_CODE (op) == REG || GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == CONST_INT"))) + ;; Return if OPERAND is valid as a source operand for a move instruction. (define_predicate "move_operand" (and ( |