aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2013-05-14 12:02:52 +0000
committerChung-Lin Tang <cltang@gcc.gnu.org>2013-05-14 12:02:52 +0000
commit2b2612629120fe1a8aaf46d126e5f2631ddc9cf8 (patch)
tree2cb29ada69532f858145a3468885f4618f35779e /gcc
parent6e022d7b0ba450c308d11c87581a3f6a1f88de21 (diff)
downloadgcc-2b2612629120fe1a8aaf46d126e5f2631ddc9cf8.zip
gcc-2b2612629120fe1a8aaf46d126e5f2631ddc9cf8.tar.gz
gcc-2b2612629120fe1a8aaf46d126e5f2631ddc9cf8.tar.bz2
re PR target/42017 (gcc compiling C for ARM has stopped using r14 in leaf functions?)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 76c74e3..15cafbb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index c47fdf6..46450b3 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -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. */