diff options
Diffstat (limited to 'gcc/config/mn10300/mn10300.md')
-rw-r--r-- | gcc/config/mn10300/mn10300.md | 16 |
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" |