diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99332.patch new file mode 100644 index 0000000000..3e63611305 --- /dev/null +++ b/toolchain-layer/recipes-devtools/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; ++} + |