diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2005-11-12 21:10:23 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2005-11-12 21:10:23 +0000 |
commit | fa7682c7297a0d9f9e94bafed70acb20029ff3ef (patch) | |
tree | 781dbd13f994852c42e18bc99f9f3b818241c47a /gcc | |
parent | 15883505db0cb4d65a8ecda425569bd8919d5c3d (diff) | |
download | gcc-fa7682c7297a0d9f9e94bafed70acb20029ff3ef.zip gcc-fa7682c7297a0d9f9e94bafed70acb20029ff3ef.tar.gz gcc-fa7682c7297a0d9f9e94bafed70acb20029ff3ef.tar.bz2 |
cris.exp: New file.
* gcc.target/cris/cris.exp: New file.
* gcc.target/cris/rld-legit1.c: New test.
* gcc.target/cris/rld-legit2.c: New test.
From-SVN: r106836
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/cris/cris.exp | 41 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/cris/rld-legit1.c | 21 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/cris/rld-legit2.c | 16 |
4 files changed, 84 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e9cc432..8d12b2e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-11-12 Hans-Peter Nilsson <hp@axis.com> + + * gcc.target/cris/cris.exp: New file. + * gcc.target/cris/rld-legit1.c: New test. + * gcc.target/cris/rld-legit2.c: New test. + 2005-11-12 Jakub Jelinek <jakub@redhat.com> PR c++/24780 diff --git a/gcc/testsuite/gcc.target/cris/cris.exp b/gcc/testsuite/gcc.target/cris/cris.exp new file mode 100644 index 0000000..db94f29 --- /dev/null +++ b/gcc/testsuite/gcc.target/cris/cris.exp @@ -0,0 +1,41 @@ +# Copyright (C) 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# GCC testsuite that uses the `gcc-dg.exp' driver, just a single option, no +# looping over tests. + +# Exit immediately if this isn't a CRIS target. +if ![istarget cris-*-*] then { + return +} + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS + +# All done. +dg-finish diff --git a/gcc/testsuite/gcc.target/cris/rld-legit1.c b/gcc/testsuite/gcc.target/cris/rld-legit1.c new file mode 100644 index 0000000..53a38af --- /dev/null +++ b/gcc/testsuite/gcc.target/cris/rld-legit1.c @@ -0,0 +1,21 @@ +/* Check that we don't get unnecessary insns due to reload using more + insns than needed due to reloading of more locations than + needed. */ +/* { dg-options -O2 } */ +/* { dg-final { scan-assembler-not "movs.w" } } */ +/* { dg-final { scan-assembler-not "move.w" } } */ + +/* As torture/pr24750-2.c, except we need to clobber R8 for thorough + testing and know we can do, since we replace the frame-pointer. */ + +int +f (short *a, char *y) +{ + __asm__ ("" : : : +#ifndef __PIC__ + "r0", +#endif + "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", + "r9", "r10", "r11", "r12", "r13"); + return y[*a]; +} diff --git a/gcc/testsuite/gcc.target/cris/rld-legit2.c b/gcc/testsuite/gcc.target/cris/rld-legit2.c new file mode 100644 index 0000000..0add3e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/cris/rld-legit2.c @@ -0,0 +1,16 @@ +/* A variant of rld-legit1.c only for full code coverage of the + initial version of cris_reload_address_legitimized. */ +/* { dg-options -O2 } */ + +short * +g (short *a, char *y) +{ + __asm__ ("" : : : +#ifndef __PIC__ + "r0", +#endif + "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", + "r9", "r10", "r11", "r12", "r13"); + y[*a++] = 0; + return a; +} |