aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/microblaze
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2013-03-04 15:26:59 +0000
committerMichael Eager <eager@gcc.gnu.org>2013-03-04 15:26:59 +0000
commit82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754 (patch)
treec0d53ae6de09175fb3346d0826144e7ed6e9e9ef /gcc/config/microblaze
parent409b1de4e1bf18498abc64fb9f990f61c8010640 (diff)
downloadgcc-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.md2
-rw-r--r--gcc/config/microblaze/predicates.md4
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 (