[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