aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch')
-rw-r--r--recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch b/recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch
new file mode 100644
index 0000000000..3e63611305
--- /dev/null
+++ b/recipes/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch
@@ -0,0 +1,68 @@
+2010-08-06 Yao Qi <yao@codesourcery.com>
+
+ LP: #612011
+ gcc/
+ * config/arm/arm.c (output_move_double): Fix typo generating
+ instructions ('ldr'->'str').
+
+ gcc/testsuite/
+ * gcc.target/arm/pr45094.c: New test.
+
+ 2010-08-02 Ulrich Weigand <uweigand@de.ibm.com>
+
+ LP: #604874
+
+=== modified file 'gcc/config/arm/arm.c'
+--- old/gcc/config/arm/arm.c 2010-08-10 13:31:21 +0000
++++ new/gcc/config/arm/arm.c 2010-08-10 14:03:02 +0000
+@@ -12506,13 +12506,13 @@
+ {
+ if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
+ {
+- output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
+- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
++ output_asm_insn ("str%?\t%0, [%1, %2]!", otherops);
++ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
+ }
+ else
+ {
+- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
+- output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
++ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
++ output_asm_insn ("str%?\t%0, [%1], %2", otherops);
+ }
+ }
+ else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
+
+=== added file 'gcc/testsuite/gcc.target/arm/pr45094.c'
+--- old/gcc/testsuite/gcc.target/arm/pr45094.c 1970-01-01 00:00:00 +0000
++++ new/gcc/testsuite/gcc.target/arm/pr45094.c 2010-08-06 05:10:03 +0000
+@@ -0,0 +1,27 @@
++/* { dg-do run } */
++/* { dg-require-effective-target arm_neon_hw } */
++/* { dg-options "-O2 -mcpu=cortex-a8" } */
++/* { dg-add-options arm_neon } */
++
++#include <stdlib.h>
++
++long long buffer[32];
++
++void __attribute__((noinline)) f(long long *p, int n)
++{
++ while (--n >= 0)
++ {
++ *p = 1;
++ p += 32;
++ }
++}
++
++int main(void)
++{
++ f(buffer, 1);
++
++ if (!buffer[0])
++ abort();
++
++ return 0;
++}
+