diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/bfin/l2.c')
-rw-r--r-- | gcc/testsuite/gcc.target/bfin/l2.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/bfin/l2.c b/gcc/testsuite/gcc.target/bfin/l2.c new file mode 100644 index 000000000..56f64cc82 --- /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; +} |