aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k/predicates.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/m68k/predicates.md')
-rw-r--r--gcc/config/m68k/predicates.md8
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"