From ad4cd2f17be659a4d0f70cb9b2ec6a6ebe0959fc Mon Sep 17 00:00:00 2001 From: jiez Date: Wed, 13 Jan 2010 14:57:59 +0000 Subject: [PATCH] * gcc.target/bfin/l2.c: New test. * gcc.target/bfin/bfin.exp (dg-bfin-processors): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155860 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/bfin/bfin.exp | 26 ++++++++++++++++++++++- gcc/testsuite/gcc.target/bfin/l2.c | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/bfin/l2.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 38241e23fbb..9d264b6b44d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-01-13 Jie Zhang + + * gcc.target/bfin/l2.c: New test. + * gcc.target/bfin/bfin.exp (dg-bfin-processors): New. + 2010-01-13 Richard Guenther PR middle-end/42716 diff --git a/gcc/testsuite/gcc.target/bfin/bfin.exp b/gcc/testsuite/gcc.target/bfin/bfin.exp index 854713e2f48..85a50a5ba4a 100644 --- a/gcc/testsuite/gcc.target/bfin/bfin.exp +++ b/gcc/testsuite/gcc.target/bfin/bfin.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2010 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 @@ -53,6 +53,30 @@ proc dg-bfin-options {args} { } } +# dg-bfin-processors can be used to specify the processors which can +# run the test case. +proc dg-bfin-processors {args} { + upvar dg-extra-tool-flags extra_tool_flags + upvar dg-do-what do_what + + set multilib_cpu "" + set cpu "" + + foreach flag [target_info multilib_flags] { + regexp "^-mcpu=([^-]*)" $flag dummy multilib_cpu + } + + set cpus [lindex $args 1] + + foreach cpu $cpus { + if {$multilib_cpu == $cpu} { + return + } + } + + set do_what [list [lindex $do_what 0] "N" "P"] +} + # Initialize `dg'. dg-init diff --git a/gcc/testsuite/gcc.target/bfin/l2.c b/gcc/testsuite/gcc.target/bfin/l2.c new file mode 100644 index 00000000000..56f64cc82b4 --- /dev/null +++ b/gcc/testsuite/gcc.target/bfin/l2.c @@ -0,0 +1,38 @@ +/* { dg-do run { target bfin-*-linux-uclibc } } */ +/* { dg-bfin-processors bf544 bf547 bf548 bf549 bf561} */ + +#if defined(__ADSPBF544__) +#define L2_START 0xFEB00000 +#define L2_LENGTH 0x10000 +#else +#define L2_START 0xFEB00000 +#define L2_LENGTH 0x20000 +#endif + +int n __attribute__ ((l2)); + +int foo (int i) __attribute__ ((l2)); + +int foo (int a) +{ + return a + 1; +} + +int main () +{ + int r; + unsigned long *p; + + p = (unsigned long *) foo; + if (*p < L2_START || *p >= L2_START + L2_LENGTH) + return 1; + + p = (unsigned long *) &n; + if ((unsigned long) p < L2_START || (unsigned long) p >= L2_START + L2_LENGTH) + return 2; + + if (foo (0) != 1) + return 3; + + return 0; +} -- 2.11.4.GIT