OSDN Git Service

gcc/
authorqiyao <qiyao@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Aug 2010 12:33:43 +0000 (12:33 +0000)
committerqiyao <qiyao@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Aug 2010 12:33:43 +0000 (12:33 +0000)
        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/ChangeLog
gcc/config/arm/arm.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr45094.c [new file with mode: 0644]

index c16adad..124b3cb 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-18  Yao Qi  <yao@codesourcery.com>
+
+       PR target/45094
+       * config/arm/arm.c (output_move_double): Fix typo generating 
+       instructions ('ldr'->'str').
+
 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
        PR rtl-optimization/42575
index 3dd73e8..f6148a7 100644 (file)
@@ -12944,13 +12944,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)
index 7930183..2e2912e 100644 (file)
@@ -1,3 +1,8 @@
+2010-08-18  Yao Qi  <yao@codesourcery.com>
+
+       PR target/45094
+       * gcc.target/arm/pr45094.c: New test.
+
 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
        * gcc.target/arm/mla-1.c: Use thumb-friendly architecture.
diff --git a/gcc/testsuite/gcc.target/arm/pr45094.c b/gcc/testsuite/gcc.target/arm/pr45094.c
new file mode 100644 (file)
index 0000000..05f16d8
--- /dev/null
@@ -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;
+}