summaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/constraints.md
diff options
context:
space:
mode:
authorRenlin Li <renlin.li@arm.com>2017-05-15 11:24:56 +0000
committerRenlin Li <renlin@gcc.gnu.org>2017-05-15 11:24:56 +0000
commit47210a041b3b40319b8dee64f00d479b1781eb57 (patch)
tree53a77fc48d52d149408165bdedb0e02da2ad0e1d /gcc/config/aarch64/constraints.md
parent7543c8b64cbcbeff998f6112dc8b6e07645e55a9 (diff)
downloadgcc-47210a041b3b40319b8dee64f00d479b1781eb57.tar.gz
[PATCH][AARCH64]Simplify call, call_value, sibcall, sibcall_value patterns.
gcc/ChangeLog 2017-05-15 Renlin Li <renlin.li@arm.com> * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare. * config/aarch64/aarch64.c (aarch64_expand_call): Define. * config/aarch64/constraints.md (Usf): Add long call check. * config/aarch64/aarch64.md (call): Use aarch64_expand_call. (call_value): Likewise. (sibcall): Likewise. (sibcall_value): Likewise. (call_insn): New. (call_value_insn): New. (sibcall_insn): Update rtx pattern. (sibcall_value_insn): Likewise. (call_internal): Remove. (call_value_internal): Likewise. (sibcall_internal): Likewise. (sibcall_value_internal): Likewise. (call_reg): Likewise. (call_symbol): Likewise. (call_value_reg): Likewise. (call_value_symbol): Likewise. From-SVN: r248056
Diffstat (limited to 'gcc/config/aarch64/constraints.md')
-rw-r--r--gcc/config/aarch64/constraints.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md
index b43f08b7bbd..88e840f2898 100644
--- a/gcc/config/aarch64/constraints.md
+++ b/gcc/config/aarch64/constraints.md
@@ -126,7 +126,8 @@
(define_constraint "Usf"
"@internal Usf is a symbol reference under the context where plt stub allowed."
(and (match_code "symbol_ref")
- (match_test "!aarch64_is_noplt_call_p (op)")))
+ (match_test "!(aarch64_is_noplt_call_p (op)
+ || aarch64_is_long_call_p (op))")))
(define_constraint "UsM"
"@internal