aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@linaro.org>2012-04-16 15:19:43 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2012-04-16 15:19:43 +0000
commitd6cb05db2ecffff53e2b9f5c291e7aed3bbf59ac (patch)
treea0468132a5b9bd92345d9f8fe921d28f196247a7 /gcc
parent034a3fcd14c3ef9adfcb632a5316dd802e9b7ef3 (diff)
downloadgcc-d6cb05db2ecffff53e2b9f5c291e7aed3bbf59ac.zip
gcc-d6cb05db2ecffff53e2b9f5c291e7aed3bbf59ac.tar.gz
gcc-d6cb05db2ecffff53e2b9f5c291e7aed3bbf59ac.tar.bz2
re PR target/51819 (Neon wrong code generation, Error: unsupported alignment for instruction -- `vst1.32 {d2[0]},[r0:64]')
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a2f6461..38df9e7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 5522fc1..2cecf45 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -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;