diff options
| author | jiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-13 14:57:59 +0000 |
|---|---|---|
| committer | jiez <jiez@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-13 14:57:59 +0000 |
| commit | ad4cd2f17be659a4d0f70cb9b2ec6a6ebe0959fc (patch) | |
| tree | 87c22eef20cf47fef3a76da7b92988ee70997976 | |
| parent | a9b39de805384725f09b3b80c928bdf8aeca8d1f (diff) | |
| download | ppe42-gcc-ad4cd2f17be659a4d0f70cb9b2ec6a6ebe0959fc.tar.gz ppe42-gcc-ad4cd2f17be659a4d0f70cb9b2ec6a6ebe0959fc.zip | |
* 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
| -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 38241e23fbb..9d264b6b44d 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 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; +} |

