https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77933
--- Comment #7 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- Author: thopre01 Date: Fri Dec 9 15:26:17 2016 New Revision: 243490 URL: https://gcc.gnu.org/viewcvs?rev=243490&root=gcc&view=rev Log: 2016-12-09 Thomas Preud'homme <thomas.preudho...@arm.com> Backport from mainline 2016-11-17 Thomas Preud'homme <thomas.preudho...@arm.com> gcc/ PR target/77933 * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr being live in the function and lr needing to be saved. Distinguish between already saved pushable registers and registers to push. Check for LR being an available pushable register. gcc/testsuite/ PR target/77933 * gcc.target/arm/pr77933-1.c: New test. * gcc.target/arm/pr77933-2.c: Likewise. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/arm/pr77933-1.c branches/gcc-6-branch/gcc/testsuite/gcc.target/arm/pr77933-2.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/arm/arm.c branches/gcc-6-branch/gcc/testsuite/ChangeLog