2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
authorcltang <cltang@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 May 2013 12:02:52 +0000 (12:02 +0000)
committercltang <cltang@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 May 2013 12:02:52 +0000 (12:02 +0000)
PR target/42017
* config/arm/arm.h (EPILOGUE_USES): Only return true
for LR_REGNUM after epilogue_completed.

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

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.  */