This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39635] [avr] integer wrong code bug
- From: "hutchinsonandy at aim dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Sep 2009 16:14:46 -0000
- Subject: [Bug target/39635] [avr] integer wrong code bug
- References: <bug-39635-12544@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from hutchinsonandy at aim dot com 2009-09-13 16:14 -------
It looks like most of AVR shift/rotates are messed up.
For the case we where we have non constant shifts, the peephole may grab a
scratch register. In this case it look like it grabs one that is free
afterwards and not before. Hence overlap issue
The rotate split pattern problem is different as noted in message links. . In
this case it is not apparent why the split is used for only different
source/destination registers. If the split were constrained so that src=dest
the overlap would be much easily to handle and it would seemingly produce
better code for the common case where src=dest.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39635