summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Yanok <yanok@emcraft.com>2011-07-19 03:00:56 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-07-20 15:24:58 +0100
commit2f1f920415dcf7f899d173352bf8924714352158 (patch)
tree24c44cbe23eae9fbced6a6346c69dfa1e99cd29d
parent5ec03dc1f80e437d5660aa3e0c7db9b561603d49 (diff)
downloadopenembedded-core-2f1f920415dcf7f899d173352bf8924714352158.tar.gz
openembedded-core-2f1f920415dcf7f899d173352bf8924714352158.tar.bz2
openembedded-core-2f1f920415dcf7f899d173352bf8924714352158.tar.xz
openembedded-core-2f1f920415dcf7f899d173352bf8924714352158.zip
gcc_4.5.1: add pr45094.patch
Add fix for PR45094 as proposed in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45094 Signed-off-by: Ilya Yanok <yanok@emcraft.com>
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.5.1.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch75
2 files changed, 76 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1.inc b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
index e84df8208..2473775fc 100644
--- a/meta/recipes-devtools/gcc/gcc-4.5.1.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
@@ -61,6 +61,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://pr43810.patch \
file://pr44290.patch \
file://pr44606.patch \
+ file://pr45094.patch \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch b/meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch
new file mode 100644
index 000000000..182e0055d
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch
@@ -0,0 +1,75 @@
+From 34bd4baaa0f6583f9ff99544c732350c199ec0e2 Mon Sep 17 00:00:00 2001
+From: qiyao <qiyao@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Wed, 18 Aug 2010 12:33:43 +0000
+Subject: [PATCH 4/6] gcc/ PR target/45094 * config/arm/arm.c (output_move_double): Fix typo generating instructions ('ldr'->'str').
+
+gcc/testsuite/
+
+ PR target/45094
+ * gcc.target/arm/pr45094.c: New test.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163338 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config/arm/arm.c | 8 ++++----
+ gcc/testsuite/gcc.target/arm/pr45094.c | 27 +++++++++++++++++++++++++++
+ 2 files changed, 31 insertions(+), 4 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/arm/pr45094.c
+
+diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
+index a06a38b..0382b24 100644
+--- a/gcc/config/arm/arm.c
++++ b/gcc/config/arm/arm.c
+@@ -12182,13 +12182,13 @@ output_move_double (rtx *operands)
+ {
+ 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)
+diff --git a/gcc/testsuite/gcc.target/arm/pr45094.c b/gcc/testsuite/gcc.target/arm/pr45094.c
+new file mode 100644
+index 0000000..05f16d8
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/arm/pr45094.c
+@@ -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;
++}
+--
+1.7.4
+