(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:
parent
83f49630c3
commit
7c08017416
@ -2074,20 +2074,24 @@
|
||||
;;- jump to subroutine
|
||||
|
||||
(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")
|
||||
(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")])
|
||||
|
||||
(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"
|
||||
|
Loading…
Reference in New Issue
Block a user