diff options
author | Jie Zhang <jie.zhang@analog.com> | 2010-01-13 14:57:59 +0000 |
---|---|---|
committer | Jie Zhang <jiez@gcc.gnu.org> | 2010-01-13 14:57:59 +0000 |
commit | 9858e0ccdaea066d6c044e6e4195966e9e4b2747 (patch) | |
tree | 87c22eef20cf47fef3a76da7b92988ee70997976 /gcc | |
parent | 48f30f629fb6991ba1ddbd40385993a2a29457a8 (diff) | |
download | gcc-9858e0ccdaea066d6c044e6e4195966e9e4b2747.zip gcc-9858e0ccdaea066d6c044e6e4195966e9e4b2747.tar.gz gcc-9858e0ccdaea066d6c044e6e4195966e9e4b2747.tar.bz2 |
l2.c: New test.
* gcc.target/bfin/l2.c: New test.
* gcc.target/bfin/bfin.exp (dg-bfin-processors): New.
From-SVN: r155860
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/bfin/bfin.exp | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/bfin/l2.c | 38 |
3 files changed, 68 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 38241e2..9d264b6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-01-13 Jie Zhang <jie.zhang@analog.com> + + * gcc.target/bfin/l2.c: New test. + * gcc.target/bfin/bfin.exp (dg-bfin-processors): New. + 2010-01-13 Richard Guenther <rguenther@suse.de> PR middle-end/42716 diff --git a/gcc/testsuite/gcc.target/bfin/bfin.exp b/gcc/testsuite/gcc.target/bfin/bfin.exp index 854713e..85a50a5 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 0000000..56f64cc --- /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; +} |