Hi, pr45701-1.c FAIL for all tests. The patch updates it to check lr other than r3, based on the comments in arm_compute_save_reg_mask,
/* ... Otherwise if we do not use the link register we do not need to save it. If we are pushing other registers onto the stack however, we can save an instruction in the epilogue by pushing the link register now and then popping it back into the PC. This incurs extra memory accesses though, so we only do it when optimizing for size, and only if we know that we will not need a fancy return sequence. */ The updated case PASS for Cortex-M0/M4 and Cortext-A15 (THUMB and ARM modes). OK for trunk? Thanks! -Zhenqiang testsuite/ChangeLog: 2014-11-03 Zhenqiang Chen <zhenqiang.c...@arm.com> * gcc.target/arm/pr45701-1.c: Check LR used. diff --git a/gcc/testsuite/gcc.target/arm/pr45701-1.c b/gcc/testsuite/gcc.target/arm/pr45701-1.c index 2c690d5..c087cfc 100644 --- a/gcc/testsuite/gcc.target/arm/pr45701-1.c +++ b/gcc/testsuite/gcc.target/arm/pr45701-1.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */ /* { dg-options "-mthumb -Os" } */ -/* { dg-final { scan-assembler "push\t\{r3" } } */ +/* { dg-final { scan-assembler "lr\}" } } */ /* { dg-final { scan-assembler-not "r8" } } */ extern int hist_verify;