diff options
author | ramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-20 09:07:30 +0000 |
---|---|---|
committer | ramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-20 09:07:30 +0000 |
commit | 99cdda4b1a9a22cd9dd95397ac66d08f1d5a518e (patch) | |
tree | 38bbd2341443c46d7f278709fa7d29aacbe8e003 | |
parent | ac6130e23b3b5a7af8f35a94c0407d439f88b42d (diff) | |
download | gcc-99cdda4b1a9a22cd9dd95397ac66d08f1d5a518e.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180240 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 3 |
2 files changed, 8 insertions, 1 deletions
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 <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 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 |