From 72b075d1ceb0b3ebb96d2bc5c9ec58d25e0ac23d Mon Sep 17 00:00:00 2001
From: Richard Earnshaw <rearnsha@arm.com>
Date: Mon, 29 Jul 2002 12:41:46 +0000
Subject: [PATCH] arm.md (sibcall, [...]): Add RETURN as part of the pattern,
 remove clobber of LR.

* arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
remove clobber of LR.
(sibcall_insn, sibcall_value_insn): Update accordingly.
(sibcall_epilogue): Remove debugging comment from assembler stream.

From-SVN: r55836
---
 gcc/ChangeLog         |  7 +++++++
 gcc/config/arm/arm.md | 17 ++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6130bada1e35..1a105d4659d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-07-29  Richard Earnshaw  <rearnsha@arm.com>
+
+	* arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
+	remove clobber of LR.
+	(sibcall_insn, sibcall_value_insn): Update accordingly.
+	(sibcall_epilogue): Remove debugging comment from assembler stream.
+
 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
 
 	* pretty-print.h: Define more macros.
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 091da69c7eaf..9dee56538e4b 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -6691,8 +6691,8 @@
 (define_expand "sibcall"
   [(parallel [(call (match_operand 0 "memory_operand" "")
 		    (match_operand 1 "general_operand" ""))
-	      (use (match_operand 2 "" ""))
-	      (use (reg:SI LR_REGNUM))])]
+	      (return)
+	      (use (match_operand 2 "" ""))])]
   "TARGET_ARM"
   "
   {
@@ -6705,8 +6705,8 @@
   [(parallel [(set (match_operand 0 "register_operand" "")
 		   (call (match_operand 1 "memory_operand" "")
 			 (match_operand 2 "general_operand" "")))
-	      (use (match_operand 3 "" ""))
-	      (use (reg:SI LR_REGNUM))])]
+	      (return)
+	      (use (match_operand 3 "" ""))])]
   "TARGET_ARM"
   "
   {
@@ -6718,8 +6718,8 @@
 (define_insn "*sibcall_insn"
  [(call (mem:SI (match_operand:SI 0 "" "X"))
 	(match_operand 1 "" ""))
-  (use (match_operand 2 "" ""))
-  (use (reg:SI LR_REGNUM))]
+  (return)
+  (use (match_operand 2 "" ""))]
   "TARGET_ARM && GET_CODE (operands[0]) == SYMBOL_REF"
   "*
   return NEED_PLT_RELOC ? \"b%?\\t%a0(PLT)\" : \"b%?\\t%a0\";
@@ -6731,8 +6731,8 @@
  [(set (match_operand 0 "s_register_operand" "=r,f")
        (call (mem:SI (match_operand:SI 1 "" "X,X"))
 	     (match_operand 2 "" "")))
-  (use (match_operand 3 "" ""))
-  (use (reg:SI LR_REGNUM))]
+  (return)
+  (use (match_operand 3 "" ""))]
   "TARGET_ARM && GET_CODE (operands[1]) == SYMBOL_REF"
   "*
   return NEED_PLT_RELOC ? \"b%?\\t%a1(PLT)\" : \"b%?\\t%a1\";
@@ -8656,7 +8656,6 @@
   [(unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)]
   "TARGET_ARM"
   "*
-  output_asm_insn (\"%@ Sibcall epilogue\", operands);
   if (USE_RETURN_INSN (FALSE))
     return output_return_instruction (const_true_rtx, FALSE, FALSE);
   return arm_output_epilogue (FALSE);
-- 
GitLab