summaryrefslogtreecommitdiffstats
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:27:36 +0100
commit30c9f6c9339d539c5457ef2a83c45fb43f29e29b (patch)
tree708f62b35ef965bb10ab3845c184bbde4f91dc17
parentb2e49a6b70dcf9f281e73d33f04e38808b71cdfb (diff)
downloadpoky-30c9f6c9339d539c5457ef2a83c45fb43f29e29b.tar.gz
gcc_4.5.1: add pr45094.patch
Add fix for PR45094 as proposed in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45094 (From OE-Core rev: 2f1f920415dcf7f899d173352bf8924714352158) Signed-off-by: Ilya Yanok <yanok@emcraft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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 e84df82082..2473775fcd 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 \
61 file://pr43810.patch \ 61 file://pr43810.patch \
62 file://pr44290.patch \ 62 file://pr44290.patch \
63 file://pr44606.patch \ 63 file://pr44606.patch \
64 file://pr45094.patch \
64 " 65 "
65 66
66SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " 67SRC_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 0000000000..182e0055db
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch
@@ -0,0 +1,75 @@
1From 34bd4baaa0f6583f9ff99544c732350c199ec0e2 Mon Sep 17 00:00:00 2001
2From: qiyao <qiyao@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Wed, 18 Aug 2010 12:33:43 +0000
4Subject: [PATCH 4/6] gcc/ PR target/45094 * config/arm/arm.c (output_move_double): Fix typo generating instructions ('ldr'->'str').
5
6gcc/testsuite/
7
8 PR target/45094
9 * gcc.target/arm/pr45094.c: New test.
10
11git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163338 138bc75d-0d04-0410-961f-82ee72b054a4
12---
13 gcc/config/arm/arm.c | 8 ++++----
14 gcc/testsuite/gcc.target/arm/pr45094.c | 27 +++++++++++++++++++++++++++
15 2 files changed, 31 insertions(+), 4 deletions(-)
16 create mode 100644 gcc/testsuite/gcc.target/arm/pr45094.c
17
18diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
19index a06a38b..0382b24 100644
20--- a/gcc/config/arm/arm.c
21+++ b/gcc/config/arm/arm.c
22@@ -12182,13 +12182,13 @@ output_move_double (rtx *operands)
23 {
24 if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
25 {
26- output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
27- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
28+ output_asm_insn ("str%?\t%0, [%1, %2]!", otherops);
29+ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
30 }
31 else
32 {
33- output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
34- output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
35+ output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
36+ output_asm_insn ("str%?\t%0, [%1], %2", otherops);
37 }
38 }
39 else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
40diff --git a/gcc/testsuite/gcc.target/arm/pr45094.c b/gcc/testsuite/gcc.target/arm/pr45094.c
41new file mode 100644
42index 0000000..05f16d8
43--- /dev/null
44+++ b/gcc/testsuite/gcc.target/arm/pr45094.c
45@@ -0,0 +1,27 @@
46+/* { dg-do run } */
47+/* { dg-require-effective-target arm_neon_hw } */
48+/* { dg-options "-O2 -mcpu=cortex-a8" } */
49+/* { dg-add-options arm_neon } */
50+
51+#include <stdlib.h>
52+
53+long long buffer[32];
54+
55+void __attribute__((noinline)) f(long long *p, int n)
56+{
57+ while (--n >= 0)
58+ {
59+ *p = 1;
60+ p += 32;
61+ }
62+}
63+
64+int main(void)
65+{
66+ f(buffer, 1);
67+
68+ if (!buffer[0])
69+ abort();
70+
71+ return 0;
72+}
73--
741.7.4
75