This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Move arm-isr.c to gcc.dg from gcc.misc-tests


 Hi,

  I took a look at the arm-isr.c test in gcc.misc-tests and discovered
there is nothing special about the test except that it only runs on
arm machines.

 Bootstrapped and regtested on sparc-linux-gnu, where the test didn't
run before or after the change :)

Ok for mainline?

James A. Morrison

2004-01-17  James A. Morrison  <ja2morri@uwaterloo.ca>

        * gcc.misc-tests/arm-isr.exp: Remove.
        * gcc.misc-tests/arm-isr.c: Move to ...
        * gcc.dg/arm-isr.c: here.

--- /dev/null	2004-01-11 20:18:29.000000000 -0500
+++ gcc.dg/arm-isr.c	2004-01-17 14:17:14.000000000 -0500
@@ -0,0 +1,49 @@
+/* { dg-do run { target *arm-*-* xscale-*-* } } */
+#ifndef __thumb__
+/* There used to be a couple of bugs in the ARM's prologue and epilogue
+   generation for ISR routines.  The wrong epilogue instruction would be
+   generated to restore the IP register if it had to be pushed onto the
+   stack, and the wrong offset was being computed for local variables if
+   r0 - r3 had to be saved.  This tests for both of these cases.  */
+
+int z = 9;
+
+int
+bar (void)
+{
+  return z;
+}
+
+int
+foo (int a, int b, int c, int d, int e, int f, int g, int h)
+{
+  volatile int i = (a + b) - (g + h) + bar ();
+  volatile int j = (e + f) - (c + d);
+
+  return a + b + c + d + e + f + g + h + i + j;
+}
+
+int foo1 (int a, int b, int c, int d, int e, int f, int g, int h) __attribute__ ((interrupt ("IRQ")));
+
+int
+foo1 (int a, int b, int c, int d, int e, int f, int g, int h)
+{
+  volatile int i = (a + b) - (g + h) + bar ();
+  volatile int j = (e + f) - (c + d);
+
+  return a + b + c + d + e + f + g + h + i + j;
+}
+#endif
+
+int
+main (void)
+{
+#ifndef __thumb__
+  if (foo (1, 2, 3, 4, 5, 6, 7, 8) != 32)
+    abort ();
+    
+  if (foo1 (1, 2, 3, 4, 5, 6, 7, 8) != 32)
+    abort ();
+#endif
+  exit (0);
+}
--- gcc.misc-tests/arm-isr.c	2004-01-17 14:17:14.000000000 -0500
+++ /dev/null	2004-01-11 20:18:29.000000000 -0500
@@ -1,49 +0,0 @@
-#ifndef __thumb__
-/* There used to be a couple of bugs in the ARM's prologue and epilogue
-   generation for ISR routines.  The wrong epilogue instruction would be
-   generated to restore the IP register if it had to be pushed onto the
-   stack, and the wrong offset was being computed for local variables if
-   r0 - r3 had to be saved.  This tests for both of these cases.  */
-
-int z = 9;
-
-int
-bar (void)
-{
-  return z;
-}
-
-int
-foo (int a, int b, int c, int d, int e, int f, int g, int h)
-{
-  volatile int i = (a + b) - (g + h) + bar ();
-  volatile int j = (e + f) - (c + d);
-
-  return a + b + c + d + e + f + g + h + i + j;
-}
-
-int foo1 (int a, int b, int c, int d, int e, int f, int g, int h) __attribute__ ((interrupt ("IRQ")));
-
-int
-foo1 (int a, int b, int c, int d, int e, int f, int g, int h)
-{
-  volatile int i = (a + b) - (g + h) + bar ();
-  volatile int j = (e + f) - (c + d);
-
-  return a + b + c + d + e + f + g + h + i + j;
-}
-#endif
-
-int
-main (void)
-{
-#ifndef __thumb__
-  if (foo (1, 2, 3, 4, 5, 6, 7, 8) != 32)
-    abort ();
-    
-  if (foo1 (1, 2, 3, 4, 5, 6, 7, 8) != 32)
-    abort ();
-#endif
-  exit (0);
-}
--- gcc.misc-tests/arm-isr.exp	2004-01-17 17:29:18.000000000 -0500
+++ /dev/null	2004-01-11 20:18:29.000000000 -0500
@@ -1,28 +0,0 @@
-#   Copyright (C) 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# This file is based on a bug report submitted to gcc-bugs:
-# http://gcc.gnu.org/ml/gcc-patches/2001-12/msg02158.html
-
-# Load support procs.
-load_lib gcc-dg.exp
-
-dg-init
-if {[istarget "*arm-*-*"] || [istarget "xscale-*-*"]} {
-  dg-runtest "$srcdir/$subdir/arm-isr.c" "" ""
-}
-dg-finish
-
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]