summaryrefslogtreecommitdiff
path: root/gcc/config/mn10300/mn10300.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mn10300/mn10300.md')
-rw-r--r--gcc/config/mn10300/mn10300.md16
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index 8fab7c11bf1..f821e499f2a 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -1139,7 +1139,13 @@
[(call (mem:QI (match_operand:SI 0 "call_address_operand" "aS"))
(match_operand:SI 1 "general_operand" "g"))]
""
- "calls %C0"
+ "*
+{
+ if (REG_P (operands[0]))
+ return \"calls %C0\";
+ else
+ return \"call %C0,[],0\";
+}"
[(set_attr "cc" "clobber")])
;; Call subroutine, returning value in operand 0
@@ -1165,7 +1171,13 @@
(call (mem:QI (match_operand:SI 1 "call_address_operand" "aS"))
(match_operand:SI 2 "general_operand" "g")))]
""
- "calls %C1"
+ "*
+{
+ if (REG_P (operands[1]))
+ return \"calls %C1\";
+ else
+ return \"call %C1,[],0\";
+}"
[(set_attr "cc" "clobber")])
(define_expand "untyped_call"