This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, AVR]PING^2 Fix PR target/41885 AVR Rotate patterns


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]