aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-10-20 09:07:30 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2011-10-20 09:07:30 +0000
commit687adac02dad2cd7f2e175dabd2156925bf81e45 (patch)
tree38bbd2341443c46d7f278709fa7d29aacbe8e003
parentcbbcf6551190acb75bedee26a6fc0c7ad71e01c0 (diff)
downloadgcc-687adac02dad2cd7f2e175dabd2156925bf81e45.zip
gcc-687adac02dad2cd7f2e175dabd2156925bf81e45.tar.gz
gcc-687adac02dad2cd7f2e175dabd2156925bf81e45.tar.bz2
re PR target/50106 ([ARM] Wrong code with -march=armv5t -mthumb -Os)
2011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> PR target/50106 * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return reg size from 1-3. From-SVN: r180240
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9ef7e64..6c084c8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ PR target/50106
+ * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
+ reg size from 1-3.
+
2011-10-20 Richard Guenther <rguenther@suse.de>
* 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 f1ada6f..e07c8c3 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