OSDN Git Service

* config/arm/arm.c (arm_print_operand): Fix invalid alignment
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Apr 2012 16:53:57 +0000 (16:53 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Apr 2012 16:53:57 +0000 (16:53 +0000)
hints for 'A' operand types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@186630 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.c

index c82d939..0f4a383 100644 (file)
@@ -1,3 +1,10 @@
+2012-04-20  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+       Backport from mainline:
+
+       * config/arm/arm.c (arm_print_operand): Fix invalid alignment
+       hints for 'A' operand types.
+
 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
 
        Backport from 2012-04-19 mainline r186588.
index 21816d6..ba081d1 100644 (file)
@@ -17712,9 +17712,9 @@ arm_print_operand (FILE *stream, rtx x, int code)
        memsize = MEM_SIZE (x);
 
        /* Only certain alignment specifiers are supported by the hardware.  */
-       if (memsize == 16 && (align % 32) == 0)
+       if (memsize == 32 && (align % 32) == 0)
          align_bits = 256;
-       else if (memsize == 16 && (align % 16) == 0)
+       else if ((memsize == 16 || memsize == 32) && (align % 16) == 0)
          align_bits = 128;
        else if (memsize >= 8 && (align % 8) == 0)
          align_bits = 64;