+1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
+
+ * config/mips/mips.md (call_value_multiple_interanal1): New.
+
1999-11-24 Jason Merrill <jason@casey.cygnus.com>
* dwarf2out.c (free_AT, free_die): New fns.
;; ??? May eventually need all 6 versions of the call patterns with multiple
;; return values.
+(define_insn "call_value_multiple_internal1"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem (match_operand 1 "call_insn_operand" "ri"))
+ (match_operand 2 "" "i")))
+ (set (match_operand 3 "register_operand" "=df")
+ (call (mem (match_dup 1))
+ (match_dup 2)))
+ (clobber (match_operand:SI 4 "register_operand" "=d"))]
+ "!TARGET_ABICALLS && !TARGET_LONG_CALLS"
+ "*
+{
+ register rtx target = operands[1];
+
+ if (GET_CODE (target) == SYMBOL_REF)
+ return \"%*jal\\t%1\";
+ else if (GET_CODE (target) == CONST_INT)
+ return \"%[li\\t%@,%1\\n\\t%*jal\\t%4,%@%]\";
+ else
+ return \"%*jal\\t%4,%1\";
+}"
+ [(set_attr "type" "call")
+ (set_attr "mode" "none")])
+
(define_insn "call_value_multiple_internal2"
[(set (match_operand 0 "register_operand" "=df")
(call (mem (match_operand 1 "call_insn_operand" "ri"))