OSDN Git Service

2011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
authorramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Oct 2011 09:07:30 +0000 (09:07 +0000)
committerramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Oct 2011 09:07:30 +0000 (09:07 +0000)
       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

gcc/ChangeLog
gcc/config/arm/arm.c

index 9ef7e64..6c084c8 100644 (file)
@@ -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
index f1ada6f..e07c8c3 100644 (file)
@@ -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