re PR target/51819 (Neon wrong code generation, Error: unsupported alignment for...
authorUlrich Weigand <ulrich.weigand@linaro.org>
Mon, 16 Apr 2012 15:19:43 +0000 (15:19 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Mon, 16 Apr 2012 15:19:43 +0000 (15:19 +0000)
2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>

PR target/51819
* config/arm/arm.c (arm_print_operand): Fix invalid alignment
hints for 'A' operand types.

From-SVN: r186498

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

index a2f6461eabb2e507ce902df4b81e51db1bbb34a1..38df9e771cb6d2efaa0ea520a680ba071addab0b 100644 (file)
@@ -1,3 +1,9 @@
+2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+       PR target/51819
+       * config/arm/arm.c (arm_print_operand): Fix invalid alignment
+       hints for 'A' operand types.
+
 2012-04-16  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.h (symtab_node_base): Add next and previous pointers.
index 5522fc12172d245ebc9a81a9a07004b14ccc1c4c..2cecf4546cdbd0738ca472d6f2ff1e24361e822d 100644 (file)
@@ -17877,9 +17877,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;