From: Edgar E. Iglesias Date: Mon, 4 Mar 2013 15:26:59 +0000 (+0000) Subject: Dont allow unsupported target rtx into call_internal1 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=82f8f53a71bf8cb82fd5c9da4f78748e9bf9f754;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 206908daf22..8bca611a97b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-03-04 Edgar E. Iglesias + + * 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. + 2013-03-04 Jakub Jelinek PR middle-end/56461 diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md index 9f177331389..78c033ee2f6 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 9bf98101d9b..e6e99836024 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 (