From 30c9f6c9339d539c5457ef2a83c45fb43f29e29b Mon Sep 17 00:00:00 2001 From: Ilya Yanok Date: Tue, 19 Jul 2011 03:00:56 +0200 Subject: 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 Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-4.5.1.inc | 1 + meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch | 75 +++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/pr45094.patch (limited to 'meta/recipes-devtools/gcc') 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 \ 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 0000000000..182e0055db --- /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 +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 ++ ++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 + -- cgit v1.2.3-54-g00ecf