Merge lp:~yao-codesourcery/gcc-linaro/4.4-lp-612011 into lp:gcc-linaro/4.4

Proposed by Yao Qi
Status: Merged
Approved by: Andrew Stubbs
Approved revision: no longer in the source branch.
Merged at revision: 93549
Proposed branch: lp:~yao-codesourcery/gcc-linaro/4.4-lp-612011
Merge into: lp:gcc-linaro/4.4
Diff against target: 71 lines (+41/-4)
3 files modified
ChangeLog.linaro (+10/-0)
gcc/config/arm/arm.c (+4/-4)
gcc/testsuite/gcc.target/arm/pr45094.c (+27/-0)
To merge this branch: bzr merge lp:~yao-codesourcery/gcc-linaro/4.4-lp-612011
Reviewer Review Type Date Requested Status
Andrew Stubbs (community) Approve
Review via email: mp+31926@code.launchpad.net

Description of the change

This patch is to fix GCC PR45094, and has been submitted to gcc-patches http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00249.html

Ramana Radhakrishnan from ARM reviewed it, and OK with it. Still waiting for arm maintainer's comments. In order to catch up the linaro monthly release, I rise merge request to linaro gcc 4.4 before this is approved on upstreams.

To post a comment you must log in.
Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

This is OK.

I'd prefer to wait until it's finally accepted upstream, but we want it in the release.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ChangeLog.linaro'
2--- ChangeLog.linaro 2010-08-05 05:56:23 +0000
3+++ ChangeLog.linaro 2010-08-06 05:13:12 +0000
4@@ -1,3 +1,13 @@
5+2010-08-06 Yao Qi <yao@codesourcery.com>
6+
7+ LP: #612011
8+ gcc/
9+ * config/arm/arm.c (output_move_double): Fix typo generating
10+ instructions ('ldr'->'str').
11+
12+ gcc/testsuite/
13+ * gcc.target/arm/pr45094.c: New test.
14+
15 2010-08-05 Yao Qi <yao@codesourcery.com>
16
17 gcc/testsuite
18
19=== modified file 'gcc/config/arm/arm.c'
20--- gcc/config/arm/arm.c 2010-08-02 17:08:15 +0000
21+++ gcc/config/arm/arm.c 2010-08-06 05:13:12 +0000
22@@ -12758,13 +12758,13 @@
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)
40
41=== added file 'gcc/testsuite/gcc.target/arm/pr45094.c'
42--- gcc/testsuite/gcc.target/arm/pr45094.c 1970-01-01 00:00:00 +0000
43+++ gcc/testsuite/gcc.target/arm/pr45094.c 2010-08-06 05:13:12 +0000
44@@ -0,0 +1,27 @@
45+/* { dg-do run } */
46+/* { dg-require-effective-target arm_neon_hw } */
47+/* { dg-options "-O2 -mcpu=cortex-a8" } */
48+/* { dg-add-options arm_neon } */
49+
50+#include <stdlib.h>
51+
52+long long buffer[32];
53+
54+void __attribute__((noinline)) f(long long *p, int n)
55+{
56+ while (--n >= 0)
57+ {
58+ *p = 1;
59+ p += 32;
60+ }
61+}
62+
63+int main(void)
64+{
65+ f(buffer, 1);
66+
67+ if (!buffer[0])
68+ abort();
69+
70+ return 0;
71+}

Subscribers

People subscribed via source and target branches