(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
This commit is contained in:
Jim Wilson 1992-10-13 11:18:30 -07:00
parent 83f49630c3
commit 7c08017416

View File

@ -2074,20 +2074,24 @@
;;- jump to subroutine ;;- jump to subroutine
(define_expand "call" (define_expand "call"
[(call (match_operand:SI 0 "general_operand" "")
(match_operand:SI 1 "immediate_operand" ""))]
""
"
{
i960_expand_call (operand0, operand1, 0);
DONE;
}")
(define_insn ""
[(call (match_operand:SI 0 "general_operand" "g") [(call (match_operand:SI 0 "general_operand" "g")
(match_operand:SI 1 "immediate_operand" "i"))] (match_operand:SI 1 "immediate_operand" "i"))]
"" ""
"* return i960_output_call_insn (operands[0], operands[1], insn);" "
{
emit_insn (gen_call_internal (operands[0], operands[1],
virtual_outgoing_args_rtx));
DONE;
}")
(define_insn "call_internal"
[(call (match_operand:SI 0 "general_operand" "g")
(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], operands[2],
operands[3], insn);"
[(set_attr "type" "call")]) [(set_attr "type" "call")])
(define_expand "call_value" (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; DONE;
}") }")
(define_insn "" (define_insn "call_value_internal"
[(set (match_operand 0 "register_operand" "=d") [(set (match_operand 0 "register_operand" "=d")
(call (match_operand:SI 1 "general_operand" "g") (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")]) [(set_attr "type" "call")])
(define_insn "return" (define_insn "return"