* config/arm/arm.c (arm_output_epilogue): Remove redundant code.
authorPaul Brook <paul@codesourcery.com>
Fri, 28 May 2004 16:00:00 +0000 (16:00 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Fri, 28 May 2004 16:00:00 +0000 (16:00 +0000)
From-SVN: r82361

gcc/ChangeLog
gcc/config/arm/arm.c

index 5c42a0c69d70ada1ed7ef2cc715692e39eadffbe..1ff5cd7c0dfa9338e8f92995dee0bc0ad0de28cb 100644 (file)
@@ -1,3 +1,7 @@
+2004-05-28  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
+
 2004-05-28  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.c (thumb_force_lr_save): New function.
index a484eb749728a9f537983902ee5d5f536375e601..6bbe8f6809888ff37083088ba8848873f8379680 100644 (file)
@@ -9704,6 +9704,7 @@ arm_output_epilogue (rtx sibling)
        }
     }
 
+  /* We may have already restored PC directly from the stack.  */
   if (! really_return
     || (ARM_FUNC_TYPE (func_type) == ARM_FT_NORMAL
        && current_function_pretend_args_size == 0
@@ -9714,8 +9715,6 @@ arm_output_epilogue (rtx sibling)
   switch ((int) ARM_FUNC_TYPE (func_type))
     {
     case ARM_FT_EXCEPTION_HANDLER:
-      /* Even in 26-bit mode we do a mov (rather than a movs)
-        because we don't have the PSR bits set in the address.  */
       asm_fprintf (f, "\tmov\t%r, %r\n", PC_REGNUM, EXCEPTION_LR_REGNUM);
       break;
 
@@ -9733,19 +9732,7 @@ arm_output_epilogue (rtx sibling)
       break;
 
     default:
-      if (frame_pointer_needed)
-       /* If we used the frame pointer then the return address
-          will have been loaded off the stack directly into the
-          PC, so there is no need to issue a MOV instruction
-          here.  */
-       ;
-      else if (current_function_pretend_args_size == 0
-              && (saved_regs_mask & (1 << LR_REGNUM)))
-       /* Similarly we may have been able to load LR into the PC
-          even if we did not create a stack frame.  */
-       ;
-      else
-       asm_fprintf (f, "\tmov\t%r, %r\n", PC_REGNUM, LR_REGNUM);
+      asm_fprintf (f, "\tmov\t%r, %r\n", PC_REGNUM, LR_REGNUM);
       break;
     }