* gcc.dg/arm-mmx-1.c: Use asm to clobber registers.
authorPaul Brook <paul@codesourcery.com>
Tue, 15 Jun 2004 15:25:52 +0000 (15:25 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Tue, 15 Jun 2004 15:25:52 +0000 (15:25 +0000)
From-SVN: r83189

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/arm-mmx-1.c

index 79a8417552664b89b6376ac1d71055fe58b7f1d1..dc1100d2e3bcf9f7e2d7c131fd868663d9bf37b2 100644 (file)
@@ -1,3 +1,7 @@
+2004-06-15  Paul Brook  <paul@codesourcery.com>
+
+       * gcc.dg/arm-mmx-1.c: Use asm to clobber registers.
+
 2004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/15967
index 361ad2c057bfef5c3a0221e793f3f754aae70457..f93b9a35b7121c018c4a35c7a9afe3bdd8e511c6 100644 (file)
@@ -5,22 +5,15 @@
 /* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "ldmfd\[       ]sp!.*ip,\[ ]*pc" } } } */
 
 /* This function uses all the call-saved registers, namely r4, r5, r6,
-   r7, r8, r9, sl, fp.  Since we also save pc, that leaves an odd
+   r7, r8, r9, sl, fp.  Since we also save lr, that leaves an odd
    number of registers, and the compiler will push ip to align the
    stack.  Make sure that we restore ip into ip, not into sp as is
    done when using a frame pointer.  The -mno-apcs-frame option
    permits the frame pointer to be used as an ordinary register.  */
-int
-foo(int *a, int *b, int *c, int *d, int *tot)
-{
-  int i, j, k, l, m, n, o;
 
-  *tot = 0;
-  for (i = *a; i < *b; i += *c)
-    for (j = *a; j < *b; j += *d)
-      for (k = *a; k < *c; k += *d)
-       for (l = *b; k < *c; k += *d)
-         for (m = *d; k < *c; k += *b)
-           *tot += i + j + k + l + m;
-  return *tot;
+void
+foo(void)
+{
+  __asm volatile ("" : : :
+                 "r4", "r5", "r6", "r7", "r8", "r9", "sl", "fp", "lr");
 }