aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2011-09-05 12:20:03 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2011-09-05 12:20:03 +0000
commit1e3a7e8662804a55bd4d01c7d5fe626b982c013a (patch)
tree8e4f0fedf4621356b1673e0074d0bab1b27eebbf /gcc/config
parente1ab3876d2f2872741a554847a8ca503f58f430c (diff)
downloadgcc-1e3a7e8662804a55bd4d01c7d5fe626b982c013a.zip
gcc-1e3a7e8662804a55bd4d01c7d5fe626b982c013a.tar.gz
gcc-1e3a7e8662804a55bd4d01c7d5fe626b982c013a.tar.bz2
re PR target/50289 ([avr]: call-prologues saving/restoring global register variables)
PR target/50289 * config/avr/avr.c (sequent_regs_live): Don't recognize sequences that contain global register variable. From-SVN: r178528
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/avr/avr.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index d267ef0..f158cdd 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -522,6 +522,17 @@ sequent_regs_live (void)
for (reg = 0; reg < 18; ++reg)
{
+ if (fixed_regs[reg])
+ {
+ /* Don't recognize sequences that contain global register
+ variables. */
+
+ if (live_seq != 0)
+ return 0;
+ else
+ continue;
+ }
+
if (!call_used_regs[reg])
{
if (df_regs_ever_live_p (reg))