summaryrefslogtreecommitdiff
path: root/gcc/config/arm
diff options
context:
space:
mode:
authorjye2 <jye2@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-19 08:28:08 +0000
committerjye2 <jye2@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-19 08:28:08 +0000
commitde98d72103464068aa59a83859a48e478478174e (patch)
tree8281e26538384c97a1c8906992dce3cbfd1ca615 /gcc/config/arm
parent70f21cc044a3ecb7a07852ffb26ed45b397f5487 (diff)
downloadgcc-de98d72103464068aa59a83859a48e478478174e.tar.gz
PR target/49437
* config/arm/arm.c (arm_output_epilogue): Properly handle epilogue when stack was realigned in interrupt handler prologue. testsuite: PR target/49437 * gcc.target/arm/handler-align.c: New test. * lib/target-supports.exp (check_effective_target_arm_cortex_m): New Function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177891 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm')
-rw-r--r--gcc/config/arm/arm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index d1a349049f8..3162b30582e 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -15230,6 +15230,7 @@ arm_output_epilogue (rtx sibling)
&& !crtl->calls_eh_return
&& bit_count(saved_regs_mask) * 4 == count
&& !IS_INTERRUPT (func_type)
+ && !IS_STACKALIGN (func_type)
&& !crtl->tail_call_emit)
{
unsigned long mask;