Commit dfeddf46 by Jeff Law

* pa.md (untyped_call): New define_expand.

From-SVN: r5192
parent b4af138b
...@@ -2841,6 +2841,34 @@ ...@@ -2841,6 +2841,34 @@
[(set_attr "type" "dyncall") [(set_attr "type" "dyncall")
(set_attr "length" "12")]) (set_attr "length" "12")])
;; Call subroutine returning any type.
(define_expand "untyped_call"
[(parallel [(call (match_operand 0 "" "")
(const_int 0))
(match_operand 1 "" "")
(match_operand 2 "" "")])]
""
"
{
int i;
emit_call_insn (gen_call (operands[0], const0_rtx));
for (i = 0; i < XVECLEN (operands[2], 0); i++)
{
rtx set = XVECEXP (operands[2], 0, i);
emit_move_insn (SET_DEST (set), SET_SRC (set));
}
/* The optimizer does not know that the call sets the function value
registers we stored in the result block. We avoid problems by
claiming that all hard registers are used and clobbered at this
point. */
emit_insn (gen_blockage ());
DONE;
}")
(define_insn "nop" (define_insn "nop"
[(const_int 0)] [(const_int 0)]
"" ""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment