diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-09-05 12:20:03 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-09-05 12:20:03 +0000 |
commit | 1e3a7e8662804a55bd4d01c7d5fe626b982c013a (patch) | |
tree | 8e4f0fedf4621356b1673e0074d0bab1b27eebbf /gcc/config | |
parent | e1ab3876d2f2872741a554847a8ca503f58f430c (diff) | |
download | gcc-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.c | 11 |
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)) |