* arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Jul 2002 12:41:46 +0000 (12:41 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Jul 2002 12:41:46 +0000 (12:41 +0000)
remove clobber of LR.
(sibcall_insn, sibcall_value_insn): Update accordingly.
(sibcall_epilogue): Remove debugging comment from assembler stream.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55836 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.md

index 6130bad..1a105d4 100644 (file)
@@ -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.
index 091da69..9dee565 100644 (file)
 (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"
   "
   {
   [(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"
   "
   {
 (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\";
  [(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\";
   [(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);