From: Roland McGrath Date: Tue, 24 Jul 2012 11:53:14 +0000 (+0000) Subject: arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding. X-Git-Tag: releases/gcc-4.8.0~4303 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2a6dd68afec2aad9db7b7fa438846c02c5a245e;p=thirdparty%2Fgcc.git arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding. 2012-07-24 Roland McGrath * arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding. From-SVN: r189807 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 08722afb81be..ecb96a5ce300 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-07-24 Roland McGrath + + * arm.c (arm_get_frame_offsets): Don't use fixed regs for + stack alignment padding. + 2012-07-24 Uros Bizjak PR target/53961 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 376274a6cef6..ca84604ddea6 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -16178,7 +16178,11 @@ arm_get_frame_offsets (void) else for (i = 4; i <= (TARGET_THUMB1 ? LAST_LO_REGNUM : 11); i++) { - if ((offsets->saved_regs_mask & (1 << i)) == 0) + /* Avoid fixed registers; they may be changed at + arbitrary times so it's unsafe to restore them + during the epilogue. */ + if (!fixed_regs[i] + && (offsets->saved_regs_mask & (1 << i)) == 0) { reg = i; break;