[PATCH, AVR]PING^2 Fix PR target/41885 AVR Rotate patterns
Anatoly Sokolov
aesok@post.ru
Wed Jan 6 19:23:00 GMT 2010
Hi Andy.
@@ -4232,6 +4232,142 @@
return "";
}
+/* Create RTL split patterns for byte sized rotate expressions. This
+ produces a series of move instructions and considers overlap situations.
+ /* Work out if byte or word move is needed. Odd byte rotates need
QImode.
+ Word move if no scratch is needed, otherwise use size of scratch.
*/
Two spaces between sentences.
+ struct {
+ rtx src,dst;
+ int links;
+ } move[size+8];
Change to:
+ struct {
+ rtx src, dst;
+ int links;
+ } move[size + 8];
+ int blocked = -1;
+ int moves = 0;
+ /* Go through move list and perform non-conflicting moves. As each
+ non-overlapping move is made, it may remove other conflicts
+ so the process is repeated until no conflicts remain. */
Two spaces between sentences.
>
>
> 2010-1-2 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
>
> PR target/41885
> * avr.md (rotlqi3): Add CONST_INT_P check.
> (rotlhi3): Delete.
> (rotlhi3_8): Delete.
> (rotlsi3): Delete.
> (rotlsi3_8): Delete.
> (rotlsi3_16): Delete.
> (rotlsi3_24): Delete.
> (rotl<mode>3): New.
> (*rotw<mode>3): New.
> (*rotb<mode>3): New.
> *avr.c (avr_rotate_bytes): New function.
> *avr-proto.h (avr_rotate_bytes): New function.
>
Ok.
Aanatoly.
More information about the Gcc-patches
mailing list