re PR target/42017 (gcc compiling C for ARM has stopped using r14 in leaf functions?)
authorChung-Lin Tang <cltang@codesourcery.com>
Tue, 14 May 2013 12:02:52 +0000 (12:02 +0000)
committerChung-Lin Tang <cltang@gcc.gnu.org>
Tue, 14 May 2013 12:02:52 +0000 (12:02 +0000)
2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>

PR target/42017
* config/arm/arm.h (EPILOGUE_USES): Only return true
for LR_REGNUM after epilogue_completed.

From-SVN: r198879

gcc/ChangeLog
gcc/config/arm/arm.h

index 76c74e3..15cafbb 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       PR target/42017
+       * config/arm/arm.h (EPILOGUE_USES): Only return true
+       for LR_REGNUM after epilogue_completed.
+
 2013-05-14  Joern Rennecke <joern.rennecke@embecosm.com>
 
        * config/avr/avr.c (avr_encode_section_info): Bail out if the type
index c47fdf6..46450b3 100644 (file)
@@ -1651,7 +1651,7 @@ typedef struct
    frame.  */
 #define EXIT_IGNORE_STACK 1
 
-#define EPILOGUE_USES(REGNO) ((REGNO) == LR_REGNUM)
+#define EPILOGUE_USES(REGNO) (epilogue_completed && (REGNO) == LR_REGNUM)
 
 /* Determine if the epilogue should be output as RTL.
    You should override this if you define FUNCTION_EXTRA_EPILOGUE.  */