From 6d4503c3100cdf9e9c38cf0889f4c118a7c1cb76 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 12 Jan 1999 10:46:58 +0000 Subject: [PATCH] * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. From-SVN: r24639 --- gcc/ChangeLog | 4 ++++ gcc/config/mips/mips.md | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2140106ed62..914da5e1072f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue Jan 12 10:23:24 1999 Stan Cox + + * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. + 1999-01-12 Manfred Hollstein * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 8640ebbf5b26..56bb8934246b 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -9776,7 +9776,8 @@ move\\t%0,%z4\\n\\ (call (mem:SI (match_operand:SI 1 "register_operand" "r")) (match_operand 2 "" "i"))) (clobber (match_operand:SI 3 "register_operand" "=d"))] - "!(Pmode == DImode) && !TARGET_ABICALLS && TARGET_LONG_CALLS" + "!TARGET_MIPS16 + && !(Pmode == DImode) && !TARGET_ABICALLS && TARGET_LONG_CALLS" "%*jal\\t%3,%1" [(set_attr "type" "call") (set_attr "mode" "none") @@ -9787,7 +9788,20 @@ move\\t%0,%z4\\n\\ (call (mem:DI (match_operand:DI 1 "se_register_operand" "r")) (match_operand 2 "" "i"))) (clobber (match_operand:SI 3 "register_operand" "=d"))] - "Pmode == DImode && !TARGET_ABICALLS && TARGET_LONG_CALLS" + "!TARGET_MIPS16 + && Pmode == DImode && !TARGET_ABICALLS && TARGET_LONG_CALLS" + "%*jal\\t%3,%1" + [(set_attr "type" "call") + (set_attr "mode" "none") + (set_attr "length" "1")]) + +(define_insn "call_value_internal3c" + [(set (match_operand 0 "register_operand" "=df") + (call (mem:SI (match_operand:SI 1 "register_operand" "e")) + (match_operand 2 "" "i"))) + (clobber (match_operand:SI 3 "register_operand" "=y"))] + "TARGET_MIPS16 && !(Pmode == DImode) && !TARGET_ABICALLS && TARGET_LONG_CALLS + && GET_CODE (operands[3]) == REG && REGNO (operands[3]) == 31" "%*jal\\t%3,%1" [(set_attr "type" "call") (set_attr "mode" "none")