diff options
Diffstat (limited to 'gcc/config/m68k/predicates.md')
-rw-r--r-- | gcc/config/m68k/predicates.md | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/config/m68k/predicates.md b/gcc/config/m68k/predicates.md index 11e10f189b6..ae091f181ed 100644 --- a/gcc/config/m68k/predicates.md +++ b/gcc/config/m68k/predicates.md @@ -159,7 +159,7 @@ } }) -;; A constant that can be used the address in a call insn. +;; A constant that can be used the address in a call or sibcall insn. (define_predicate "const_call_operand" (ior (match_operand 0 "const_int_operand") (and (match_test "m68k_symbolic_call != NULL") @@ -170,6 +170,12 @@ (ior (match_operand 0 "const_call_operand") (match_operand 0 "register_operand"))) +;; An operand that can be used as the address in a sibcall insn. +(define_predicate "sibcall_operand" + (ior (match_operand 0 "const_call_operand") + (and (match_code "reg") + (match_test "REGNO (op) == STATIC_CHAIN_REGNUM")))) + ;; TODO: Add a comment here. (define_predicate "post_inc_operand" |