From: Ramana Radhakrishnan Date: Thu, 20 Oct 2011 09:07:30 +0000 (+0000) Subject: re PR target/50106 ([ARM] Wrong code with -march=armv5t -mthumb -Os) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=687adac02dad2cd7f2e175dabd2156925bf81e45;p=gcc.git re PR target/50106 ([ARM] Wrong code with -march=armv5t -mthumb -Os) 2011-10-20 Ramana Radhakrishnan PR target/50106 * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return reg size from 1-3. From-SVN: r180240 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ef7e64c2c8..6c084c88ffb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-10-20 Ramana Radhakrishnan + + PR target/50106 + * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return + reg size from 1-3. + 2011-10-20 Richard Guenther * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index f1ada6f9a73..e07c8c328c6 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -21652,7 +21652,8 @@ thumb_unexpanded_epilogue (void) if (extra_pop > 0) { unsigned long extra_mask = (1 << extra_pop) - 1; - live_regs_mask |= extra_mask << (size / UNITS_PER_WORD); + live_regs_mask |= extra_mask << ((size + UNITS_PER_WORD - 1) + / UNITS_PER_WORD); } /* The prolog may have pushed some high registers to use as