From: Jim Wilson Date: Tue, 13 Oct 1992 18:18:30 +0000 (-0700) Subject: (call, call_value): No longer call i960_expand_call, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7c08017416be9c16a25a1459b59329500be7ab10;p=gcc.git (call, call_value): No longer call i960_expand_call, instead call call_internal/call_value_internal pattern. (call_internal, call_value_internal): Rewrite patterns to pass new args to i960_output_call_insn. From-SVN: r2434 --- diff --git a/gcc/config/i960/i960.md b/gcc/config/i960/i960.md index 1489b46aa65..8ed7c1a9ea1 100644 --- a/gcc/config/i960/i960.md +++ b/gcc/config/i960/i960.md @@ -2074,20 +2074,24 @@ ;;- jump to subroutine (define_expand "call" - [(call (match_operand:SI 0 "general_operand" "") - (match_operand:SI 1 "immediate_operand" ""))] + [(call (match_operand:SI 0 "general_operand" "g") + (match_operand:SI 1 "immediate_operand" "i"))] "" " { - i960_expand_call (operand0, operand1, 0); + emit_insn (gen_call_internal (operands[0], operands[1], + virtual_outgoing_args_rtx)); DONE; }") -(define_insn "" +(define_insn "call_internal" [(call (match_operand:SI 0 "general_operand" "g") - (match_operand:SI 1 "immediate_operand" "i"))] + (match_operand:SI 1 "immediate_operand" "i")) + (use (match_operand:SI 2 "address_operand" "p")) + (clobber (match_scratch:SI 3 "=&r"))] "" - "* return i960_output_call_insn (operands[0], operands[1], insn);" + "* return i960_output_call_insn (operands[0], operands[1], operands[2], + operands[3], insn);" [(set_attr "type" "call")]) (define_expand "call_value" @@ -2097,16 +2101,20 @@ "" " { - i960_expand_call (operand1, operand2, operand0); + emit_insn (gen_call_value_internal (operands[0], operands[1], operands[2], + virtual_outgoing_args_rtx)); DONE; }") -(define_insn "" +(define_insn "call_value_internal" [(set (match_operand 0 "register_operand" "=d") (call (match_operand:SI 1 "general_operand" "g") - (match_operand:SI 2 "immediate_operand" "i")))] + (match_operand:SI 2 "immediate_operand" "i"))) + (use (match_operand:SI 3 "address_operand" "p")) + (clobber (match_scratch:SI 4 "=&r"))] "" - "* return i960_output_call_insn (operands[1], operands[2], insn);" + "* return i960_output_call_insn (operands[1], operands[2], operands[3], + operands[4], insn);" [(set_attr "type" "call")]) (define_insn "return"