OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-src/gcc-4.5.1/gcc
    from Rev 316 to Rev 317
    Reverse comparison

Rev 316 → Rev 317

/testsuite/gcc.target/frv/frv.exp
0,0 → 1,53
# Copyright (C) 2004 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC 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 3, or (at your option)
# any later version.
#
# GCC 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 GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
 
# The name of each test starts with the architecture it requires. Tests that
# work on all variants start with "all".
 
if {![istarget frv-*-*]} {
return 0
}
 
load_lib gcc-dg.exp
 
# Find out which architecture is used by default.
set mainarch "fr500"
foreach flag [target_info multilib_flags] {
regexp "^-mcpu=(.*)" $flag dummy mainarch
if {$flag == "-mno-pack"} {
# -mno-pack disables media intrinsics.
return 0
}
}
 
# Set $archs to "all" plus the list of architectures we can test.
set archs [list "all" $mainarch]
switch $mainarch {
fr405 { lappend archs fr400 }
fr450 { lappend archs fr405 fr400 }
}
 
# Set $files to the list of files we can test.
set files ""
foreach arch $archs {
lappend files [lsort [glob -nocomplain $srcdir/$subdir/${arch}*.c]]
}
 
dg-init
gcc-dg-runtest [eval concat $files] ""
dg-finish
/testsuite/gcc.target/frv/all-read-write-1.c
0,0 → 1,34
/* { dg-do run } */
extern void abort (void);
extern void exit (int);
 
volatile unsigned long long x[2];
 
int main ()
{
volatile char *addr = (volatile char *) &x[0];
 
x[0] = ~0ULL;
x[1] = ~0ULL;
__builtin_write64 (addr, 0x1122334455667788ULL);
__builtin_write32 (addr + 8, 0x12345678);
__builtin_write16 (addr + 12, 0xaabb);
__builtin_write8 (addr + 14, 0xcc);
 
if (x[0] != 0x1122334455667788ULL
|| x[1] != 0x12345678aabbccffULL
|| __builtin_read8 (addr) != 0x11
|| __builtin_read16 (addr + 2) != 0x3344
|| __builtin_read32 (addr + 4) != 0x55667788
|| __builtin_read64 (addr + 8) != 0x12345678aabbccffULL)
abort ();
 
__builtin_write64 (addr, 0);
__builtin_write32 (addr + 8, 0);
__builtin_write16 (addr + 12, 0);
__builtin_write8 (addr + 14, 0);
if (x[0] != 0 || x[1] != 0xff)
abort ();
 
exit (0);
}
testsuite/gcc.target/frv/all-read-write-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-initial-exec.c =================================================================== --- testsuite/gcc.target/frv/all-tls-initial-exec.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-initial-exec.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=initial-exec -mfdpic" } */ +/* { dg-do compile } */ +extern __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "ld.*#tlsoff.x.@" } } */
testsuite/gcc.target/frv/all-tls-initial-exec.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-local-dynamic.c =================================================================== --- testsuite/gcc.target/frv/all-tls-local-dynamic.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-local-dynamic.c (revision 317) @@ -0,0 +1,13 @@ +/* { dg-options "-ftls-model=local-dynamic -fpic -mfdpic" } */ +/* { dg-do compile } */ +static __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "gettlsoff\\(0\\)" } } */ +/* { dg-final { scan-assembler "tlsmoff12" } } */
testsuite/gcc.target/frv/all-tls-local-dynamic.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr405-builtins-1.c =================================================================== --- testsuite/gcc.target/frv/fr405-builtins-1.c (nonexistent) +++ testsuite/gcc.target/frv/fr405-builtins-1.c (revision 317) @@ -0,0 +1,39 @@ +/* Test the IACC multiply/accumulate instructions. Also test the IACC + read/write functions. */ +/* { dg-options "-mcpu=fr405" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + long long res, res1, res2, res3; + + __SMU (0x12345678, 0x40004000); + __SMASS (0x12000000, 0x11223344); + __SMSSS (0x01020304, 0x54321000); + + res = __IACCreadll (0); + res1 = 0x12345678LL * 0x40004000LL; + res2 = 0x12000000LL * 0x11223344LL; + res3 = 0x01020304LL * 0x54321000LL; + if (res != res1 + res2 - res3) + abort (); + + __IACCsetll (0, 0x7ffffffffffffff0LL); + __SMASS (0x100, 0x100); + if (__IACCreadll (0) != 0x7fffffffffffffffLL) + abort (); + + __IACCsetl (0, -0x7ffffffe); + __IACCsetl (1, 0); + __SMSSS (0x10001, 0x10000); + if (__IACCreadl (0) != -0x7fffffff - 1 || __IACCreadl (1) != -0x10000) + abort (); + + __SMSSS (0x10001, 0x10000); + if (__IACCreadl (0) != -0x7fffffff - 1 || __IACCreadl (1) != 0) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr405-builtins-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr550-builtins-1.c =================================================================== --- testsuite/gcc.target/frv/fr550-builtins-1.c (nonexistent) +++ testsuite/gcc.target/frv/fr550-builtins-1.c (revision 317) @@ -0,0 +1,42 @@ +/* Test prefetch support. */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +unsigned char global[64]; + +void +foo (unsigned int *x, int n) +{ + unsigned short local[16]; + + __data_prefetch0 (x); + __data_prefetch0 (&x[8]); + __data_prefetch0 (&x[n]); + __data_prefetch0 (local); + __data_prefetch0 (&local[16]); + __data_prefetch0 (&local[n]); + __data_prefetch0 (global); + __data_prefetch0 (&global[32]); + __data_prefetch0 (&global[n]); + +#if __FRV_VLIW__ > 1 + __data_prefetch (x); + __data_prefetch (&x[8]); + __data_prefetch (&x[n]); + __data_prefetch (local); + __data_prefetch (&local[16]); + __data_prefetch (&local[n]); + __data_prefetch (global); + __data_prefetch (&global[32]); + __data_prefetch (&global[n]); +#endif +} + +int main () +{ + unsigned int i[16]; + + foo (i, 2); + exit (0); +}
testsuite/gcc.target/frv/fr550-builtins-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr405-builtins-2.c =================================================================== --- testsuite/gcc.target/frv/fr405-builtins-2.c (nonexistent) +++ testsuite/gcc.target/frv/fr405-builtins-2.c (revision 317) @@ -0,0 +1,69 @@ +/* Test the SCUTSS instruction. */ +/* { dg-options "-mcpu=fr405" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + struct { + long long value; + int cut_point; + int result; + } values[] = { + /* Non-saturating values */ + + { +0x0000000000001234LL, 44, +0x01234000 }, + { ~0x0000000000001234LL, 44, ~0x01234fff }, + + { +0x0000011223300fffLL, 20, +0x11223301 }, + { ~0x0000011223300fffLL, 20, ~0x11223300 }, + { +0x0000011223300800LL, 20, +0x11223301 }, + { ~0x0000011223300800LL, 20, ~0x11223300 }, + { +0x00000112233007ffLL, 20, +0x11223300 }, + { ~0x00000112233007ffLL, 20, ~0x112232ff }, + { +0x0000011223300000LL, 20, +0x11223300 }, + { ~0x0000011223300000LL, 20, ~0x112232ff }, + + { +0x1234567fffffffffLL, -4, +0x01234568 }, + { ~0x1234567fffffffffLL, -4, ~0x01234567 }, + { +0x1234567800000000LL, -4, +0x01234568 }, + { ~0x1234567800000000LL, -4, ~0x01234567 }, + { +0x12345677ffffffffLL, -4, +0x01234567 }, + { ~0x12345677ffffffffLL, -4, ~0x01234566 }, + { +0x1234567000000000LL, -4, +0x01234567 }, + { ~0x1234567000000000LL, -4, ~0x01234566 }, + + /* Saturation tests */ + + { +0x4000000000000000LL, 44, +0x7fffffff }, + { ~0x4000000000000000LL, 44, ~0x7fffffff }, + { +0x0000000000080000LL, 44, +0x7fffffff }, + { ~0x0000000000080000LL, 44, ~0x7fffffff }, + { +0x000000000007ffffLL, 44, +0x7ffff000 }, + { ~0x000000000007ffffLL, 44, ~0x7fffffff }, + { +0x000000000007fffeLL, 44, +0x7fffe000 }, + { ~0x000000000007fffeLL, 44, ~0x7fffefff }, + + { +0x4000000000000000LL, 20, +0x7fffffff }, + { ~0x4000000000000000LL, 20, ~0x7fffffff }, + { +0x0000080000000000LL, 20, +0x7fffffff }, + { ~0x0000080000000000LL, 20, ~0x7fffffff }, + { +0x000007ffffffffffLL, 20, +0x7fffffff }, + { ~0x000007ffffffffffLL, 20, ~0x7fffffff }, + { +0x000007fffffff000LL, 20, +0x7fffffff }, + { ~0x000007fffffff000LL, 20, ~0x7ffffffe }, + { +0x000007ffffffe000LL, 20, +0x7ffffffe }, + { ~0x000007ffffffefffLL, 20, ~0x7ffffffe } + }; + + unsigned int i; + + for (i = 0; i < sizeof (values) / sizeof (values[0]); i++) + { + __IACCsetll (0, values[i].value); + if (__SCUTSS (values[i].cut_point) != values[i].result) + abort (); + } + exit (0); +}
testsuite/gcc.target/frv/fr405-builtins-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr550-builtins-2.c =================================================================== --- testsuite/gcc.target/frv/fr550-builtins-2.c (nonexistent) +++ testsuite/gcc.target/frv/fr550-builtins-2.c (revision 317) @@ -0,0 +1,9 @@ +/* Test prefetch support. */ +/* { dg-do compile } */ + +void foo (void *x) +{ + __data_prefetch0 (x); +} + +/* { dg-final { scan-assembler "\tdcpl " } } */
testsuite/gcc.target/frv/fr550-builtins-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr405-builtins-3.c =================================================================== --- testsuite/gcc.target/frv/fr405-builtins-3.c (nonexistent) +++ testsuite/gcc.target/frv/fr405-builtins-3.c (revision 317) @@ -0,0 +1,58 @@ +/* Test the remaining integer instructions. */ +/* { dg-options "-mcpu=fr405" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + if (__SLASS (0x112233, 4) != 0x1122330) + abort (); + + if (__SLASS (0x7ffff, 12) != 0x7ffff000) + abort (); + + if (__SLASS (0x80000, 12) != 0x7fffffff) + abort (); + + if (__SLASS (-0x7ffff, 12) != -0x7ffff000) + abort (); + + if (__SLASS (-0x80000, 12) != -0x7fffffff - 1) + abort (); + + if (__SLASS (-0x80001, 12) != -0x7fffffff - 1) + abort (); + + if (__ADDSS (0x7fffffff, 1) != 0x7fffffff) + abort (); + + if (__ADDSS (0x7ffffffd, 1) != 0x7ffffffe) + abort (); + + if (__ADDSS (-0x7fffffff, -2) != -0x7fffffff - 1) + abort (); + + if (__ADDSS (-0x7ffffffd, -2) != -0x7fffffff) + abort (); + + if (__SUBSS (0x7fffffff, -1) != 0x7fffffff) + abort (); + + if (__SUBSS (0x7ffffffd, -1) != 0x7ffffffe) + abort (); + + if (__SUBSS (-0x7fffffff, 2) != -0x7fffffff - 1) + abort (); + + if (__SUBSS (-0x7ffffffd, 2) != -0x7fffffff) + abort (); + + if (__SCAN (0x12345678, 0) != 3) + abort (); + + if (__SCAN (0x12345678, 0x24680000) != 17) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr405-builtins-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr550-builtins-3.c =================================================================== --- testsuite/gcc.target/frv/fr550-builtins-3.c (nonexistent) +++ testsuite/gcc.target/frv/fr550-builtins-3.c (revision 317) @@ -0,0 +1,13 @@ +/* Test prefetch support. */ +/* { dg-do compile } */ + +#if __FRV_VLIW__ > 1 +void foo (void *x) +{ + __data_prefetch (x); +} +#else +asm (";\tnop.p\n;\tnldub "); +#endif + +/* { dg-final { scan-assembler "\tnop.p.*\tnldub " } } */
testsuite/gcc.target/frv/fr550-builtins-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-global-dynamic.c =================================================================== --- testsuite/gcc.target/frv/all-tls-global-dynamic.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-global-dynamic.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=global-dynamic -fpic -mfdpic -mno-inline-plt" } */ +/* { dg-do compile } */ +extern __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "call #gettlsoff.x." } } */
testsuite/gcc.target/frv/all-tls-global-dynamic.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c =================================================================== --- testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c (revision 317) @@ -0,0 +1,13 @@ +/* { dg-options "-ftls-model=local-dynamic -minline-plt -fpic -mfdpic" } */ +/* { dg-do compile } */ +static __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "lddi.*gottlsdesc12" } } */ +/* { dg-final { scan-assembler "calll.*#gettlsoff\\(0\\)" } } */
testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr550-builtins-4.c =================================================================== --- testsuite/gcc.target/frv/fr550-builtins-4.c (nonexistent) +++ testsuite/gcc.target/frv/fr550-builtins-4.c (revision 317) @@ -0,0 +1,48 @@ +/* Test the __M{,D}{ADD,SUB}ACC functions. */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MWTACC (6, 10); + __MWTACC (7, 25); + __MADDACCS (5, 6); + if (__MRDACC (5) != 35) + abort (); + __MSUBACCS (4, 6); + if (__MRDACC (4) != -15) + abort (); + __MASACCS (4, 6); + if (__MRDACC (4) != 35 || __MRDACC (5) != -15) + abort (); + + __MWTACC (0, 100); + __MWTACC (1, 150); + __MWTACC (2, 1000); + __MWTACC (3, 1500); + __MDADDACCS (2, 0); + if (__MRDACC (2) != 250 || __MRDACC (3) != 2500) + abort (); + + __MWTACC (0, 100); + __MWTACC (1, 150); + __MWTACC (2, 1000); + __MWTACC (3, 1500); + __MDSUBACCS (2, 0); + if (__MRDACC (2) != -50 || __MRDACC (3) != -500) + abort (); + + __MWTACC (0, 100); + __MWTACC (1, 150); + __MWTACC (2, 1000); + __MWTACC (3, 1500); + __MDASACCS (0, 0); + if (__MRDACC (0) != 250 || __MRDACC (1) != -50) + abort (); + if (__MRDACC (2) != 2500 || __MRDACC (3) != -500) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr550-builtins-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr550-builtins-5.c =================================================================== --- testsuite/gcc.target/frv/fr550-builtins-5.c (nonexistent) +++ testsuite/gcc.target/frv/fr550-builtins-5.c (revision 317) @@ -0,0 +1,25 @@ +/* Test that __MADDACC only changes the registers it's supposed to. */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MWTACC (0, 1); + __MWTACC (1, 1); + __MWTACC (2, 1); + __MWTACC (3, 1); + __MWTACC (4, 1); + __MWTACC (5, 1); + __MWTACC (6, 1); + __MWTACC (7, 1); + __MADDACCS (0, 2); + __MADDACCS (4, 6); + if ((__MRDACC (0) - 2) + | (__MRDACC (1) - 1) + | (__MRDACC (4) - 2) + | (__MRDACC (5) - 1)) + abort (); + exit (0); +}
testsuite/gcc.target/frv/fr550-builtins-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-mclracca-1.c =================================================================== --- testsuite/gcc.target/frv/all-mclracca-1.c (nonexistent) +++ testsuite/gcc.target/frv/all-mclracca-1.c (revision 317) @@ -0,0 +1,24 @@ +/* GCSE used to reuse the value of __MRDACC. */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +void foo (int *z) +{ + __MWTACC (3, 1); + if (__MRDACC (3) != 1) + *z = 1; + __MCLRACCA (); + if (__MRDACC (3) != 1) + *z = 2; +} + +int main () +{ + int z = 3; + + foo (&z); + if (z != 2) + abort (); + exit (0); +}
testsuite/gcc.target/frv/all-mclracca-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-mdpackh-1.c =================================================================== --- testsuite/gcc.target/frv/all-mdpackh-1.c (nonexistent) +++ testsuite/gcc.target/frv/all-mdpackh-1.c (revision 317) @@ -0,0 +1,16 @@ +/* Test the new (Fujitsu-compatible) __MDPACKH() interface. */ +/* { dg-do run } */ +extern void exit (int); +extern void abort (void); + +unsigned short x[] = { 0x8765, 0x1234, 0x2222, 0xeeee }; + +int +main () +{ + if (__MDPACKH (x[0], x[1], x[2], x[3]) != 0x876522221234eeeeULL) + abort (); + if (__MDPACKH (0x1111, 0x8001, 0xeeee, 0x7002) != 0x1111eeee80017002ULL) + abort (); + exit (0); +}
testsuite/gcc.target/frv/all-mdpackh-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-accs-1.c =================================================================== --- testsuite/gcc.target/frv/all-accs-1.c (nonexistent) +++ testsuite/gcc.target/frv/all-accs-1.c (revision 317) @@ -0,0 +1,65 @@ +/* Check that ACCs and ACCGs are treated as global variables even if + media.h isn't included. */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +void +set () +{ +#define SET(X) __MWTACC (X, (X) | 0x100), __MWTACCG (X, X) + SET (0); + SET (1); + SET (2); + SET (3); +#if defined (__CPU_FR450__) + SET (8); + SET (9); + SET (10); + SET (11); +#elif __FRV_ACC__ > 4 + SET (4); + SET (5); + SET (6); + SET (7); +#endif +#undef SET +} + +void +check () +{ + int diff1, diff2; + + diff1 = diff2 = 0; + +#define CHECK(X) \ + (diff1 |= (__MRDACC (X) ^ (X | 0x100)), \ + diff2 |= (__MRDACCG (X) ^ X)) + CHECK (0); + CHECK (1); + CHECK (2); + CHECK (3); +#if defined (__CPU_FR450__) + CHECK (8); + CHECK (9); + CHECK (10); + CHECK (11); +#elif __FRV_ACC__ > 4 + CHECK (4); + CHECK (5); + CHECK (6); + CHECK (7); +#endif +#undef CHECK + if ((diff1 | diff2) != 0) + abort (); +} + +int +main () +{ + set (); + check (); + exit (0); +}
testsuite/gcc.target/frv/all-accs-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c =================================================================== --- testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=local-dynamic -minline-plt -fPIC -mfdpic" } */ +/* { dg-do compile } */ +static __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "ldd.*tlsdesc\\(0\\)@" } } */
testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr400-builtins-1.c =================================================================== --- testsuite/gcc.target/frv/fr400-builtins-1.c (nonexistent) +++ testsuite/gcc.target/frv/fr400-builtins-1.c (revision 317) @@ -0,0 +1,28 @@ +/* Test prefetch support. */ +/* { dg-options "-mcpu=fr400" } */ +/* { dg-do run } */ + +unsigned char global[64]; + +int foo (unsigned int *x, int n) +{ + unsigned short local[16]; + + __data_prefetch0 (x); + __data_prefetch0 (&x[8]); + __data_prefetch0 (&x[n]); + __data_prefetch0 (local); + __data_prefetch0 (&local[16]); + __data_prefetch0 (&local[n]); + __data_prefetch0 (global); + __data_prefetch0 (&global[32]); + __data_prefetch0 (&global[n]); +} + +int main () +{ + unsigned int i[16]; + + foo (i, 2); + return 0; +}
testsuite/gcc.target/frv/fr400-builtins-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr400-builtins-2.c =================================================================== --- testsuite/gcc.target/frv/fr400-builtins-2.c (nonexistent) +++ testsuite/gcc.target/frv/fr400-builtins-2.c (revision 317) @@ -0,0 +1,10 @@ +/* Test prefetch support. */ +/* { dg-options "-mcpu=fr400" } */ +/* { dg-do compile } */ + +void foo (void *x) +{ + __data_prefetch0 (x); +} + +/* { dg-final { scan-assembler "\tdcpl " } } */
testsuite/gcc.target/frv/fr400-builtins-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-local-exec.c =================================================================== --- testsuite/gcc.target/frv/all-tls-local-exec.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-local-exec.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=local-exec -mfdpic" } */ +/* { dg-do compile } */ +static __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler ".*tlsmoff12" } } */
testsuite/gcc.target/frv/all-tls-local-exec.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-local-exec-TLS.c =================================================================== --- testsuite/gcc.target/frv/all-tls-local-exec-TLS.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-local-exec-TLS.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=local-exec -mfdpic -mTLS" } */ +/* { dg-do compile } */ +static __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "sethi.*tlsmoffhi\\(x\\)," } } */
testsuite/gcc.target/frv/all-tls-local-exec-TLS.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-1.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-1.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-1.c (revision 317) @@ -0,0 +1,27 @@ +/* Test __MQLCLRHS. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + struct { unsigned long long a, b, c; } entries[] = { + { 0x10002000e800d800ULL, 0x0800080008000800ULL, 0x10002000e800d800ULL }, + { 0x10002000e800d800ULL, 0xf800f800f800f800ULL, 0xf000e00018002800ULL }, + { 0x1000100010001000ULL, 0xf000f80008001000ULL, 0x0000f00010000000ULL }, + { 0xf000f000f000f000ULL, 0xf000f80008001000ULL, 0x00001000f0000000ULL }, + { 0x8000800080008000ULL, 0x80007fff80010000ULL, 0x000080007fff8000ULL }, + { 0x7fff7fff7fff7fffULL, 0x80007fff80010000ULL, 0x0000000000007fffULL }, + { 0x8001800180018001ULL, 0x80007fff80010000ULL, 0x0000000000008001ULL }, + { 0x800080000001ffffULL, 0x0001ffff80008000ULL, 0x80007fff00000000ULL } + }; + + unsigned int i; + + for (i = 0; i < sizeof (entries) / sizeof (entries[0]); i++) + if (__MQLCLRHS (entries[i].a, entries[i].b) != entries[i].c) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-2.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-2.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-2.c (revision 317) @@ -0,0 +1,27 @@ +/* Test __MLMTHS. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + struct { unsigned long long a, b, c; } entries[] = { + { 0x10002000e800d800ULL, 0x0800080008000800ULL, 0x08000800f800f800ULL }, + { 0x10002000e800d800ULL, 0xf800f800f800f800ULL, 0xf800f80008000800ULL }, + { 0x1000100010001000ULL, 0xe800f80008001800ULL, 0x1000f80008001000ULL }, + { 0xf000f000f000f000ULL, 0xe800f80008001800ULL, 0xf0000800f800f000ULL }, + { 0x8000800080008000ULL, 0x80007fff80010000ULL, 0x7fff80017fff0000ULL }, + { 0x7fff7fff7fff7fffULL, 0x80007fff80010000ULL, 0x7fff7fff80010000ULL }, + { 0x8001800180018001ULL, 0x80007fff80010000ULL, 0x800180017fff0000ULL }, + { 0x800080000001ffffULL, 0x0001ffff80008000ULL, 0xffff00010001ffffULL } + }; + + unsigned int i; + + for (i = 0; i < sizeof (entries) / sizeof (entries[0]); i++) + if (__MQLMTHS (entries[i].a, entries[i].b) != entries[i].c) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-3.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-3.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-3.c (revision 317) @@ -0,0 +1,25 @@ +/* Test __MQSLLHI. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + if (__MQSLLHI (0x0001000200030004ULL, 1) != 0x0002000400060008ULL) + abort (); + + if (__MQSLLHI (0xfffffffefffcfff8ULL, 1) != 0xfffefffcfff8fff0ULL) + abort (); + + if (__MQSLLHI (0xfffffffefffcfff8ULL, 12) != 0xf000e000c0008000ULL) + abort (); + + if (__MQSLLHI (0x123456789abcdef0ULL, 12) != 0x40008000c0000000ULL) + abort (); + + if (__MQSLLHI (0x123456789abcdef0ULL, 16) != 0x123456789abcdef0ULL) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-4.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-4.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-4.c (revision 317) @@ -0,0 +1,25 @@ +/* Test __MQSRAHI. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int main () +{ + if (__MQSRAHI (0x0001000200030004ULL, 1) != 0x0000000100010002ULL) + abort (); + + if (__MQSRAHI (0xfffffffefffcfff8ULL, 1) != 0xfffffffffffefffcULL) + abort (); + + if (__MQSRAHI (0x8000c000e000f000ULL, 12) != 0xfff8fffcfffeffffULL) + abort (); + + if (__MQSRAHI (0x123456789abcdef0ULL, 12) != 0x00010005fff9fffdULL) + abort (); + + if (__MQSRAHI (0x123456789abcdef0ULL, 16) != 0x123456789abcdef0ULL) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-5.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-5.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-5.c (revision 317) @@ -0,0 +1,35 @@ +/* Test that all accumulator registers are accessible. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +#define TEST_ACC(X) \ + (__MWTACC (X, 0x11220000 | X), __MRDACC (X) ^ (0x11220000 | X)) + +#define TEST_ACCG(X) \ + (__MWTACCG (X, X), __MRDACCG (X) ^ X) + +#define ZERO_ACC(X) \ + (__MRDACC (X) | __MRDACCG (X)) + +int +main () +{ + if (TEST_ACC (0) | TEST_ACC (1) | TEST_ACC (2) | TEST_ACC (3)) + abort (); + if (TEST_ACC (8) | TEST_ACC (9) | TEST_ACC (10) | TEST_ACC (11)) + abort (); + if (TEST_ACCG (0) | TEST_ACCG (1) | TEST_ACCG (2) | TEST_ACCG (3)) + abort (); + if (TEST_ACCG (8) | TEST_ACCG (9) | TEST_ACCG (10) | TEST_ACCG (11)) + abort (); + + __MCLRACCA (); + if (ZERO_ACC (0) | ZERO_ACC (1) | ZERO_ACC (2) | ZERO_ACC (3)) + abort (); + if (ZERO_ACC (8) | ZERO_ACC (9) | ZERO_ACC (10) | ZERO_ACC (11)) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/all-tls-initial-exec-pic.c =================================================================== --- testsuite/gcc.target/frv/all-tls-initial-exec-pic.c (nonexistent) +++ testsuite/gcc.target/frv/all-tls-initial-exec-pic.c (revision 317) @@ -0,0 +1,12 @@ +/* { dg-options "-ftls-model=initial-exec -fpic -mfdpic" } */ +/* { dg-do compile } */ +extern __thread int x; +extern void bar (); +int *y; + +void foo (void) +{ + bar (); + y = &x; +} +/* { dg-final { scan-assembler "ld.*#gottlsoff12" } } */
testsuite/gcc.target/frv/all-tls-initial-exec-pic.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-6.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-6.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-6.c (revision 317) @@ -0,0 +1,23 @@ +/* Test a situation in which an M5 instruction (mrdacc) and M4 instruction + (mqmulhu) can be issued together. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MQMULHU (0, 0x0011002200330044ULL, 0x0002000300040001ULL); + __MQMULHU (8, 0x0100020003000400ULL, 0x0001000200030004ULL); + + /* 0x22 + 0x66 + 0xcc + 0x44 = 0x198 */ + /* 0x100 + 0x400 + 0x900 + 0x1000 = 0x1e00 */ + if (__MRDACC (0) + __MRDACC (1) + + __MRDACC (2) + __MRDACC (3) + + __MRDACC (8) + __MRDACC (9) + + __MRDACC (10) + __MRDACC (11) != 0x1f98) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-6.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-7.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-7.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-7.c (revision 317) @@ -0,0 +1,24 @@ +/* Test that the code from fr450-builtins-6.c packs together an + M4 and M5 instruction. */ +/* { dg-options "-O2 -mcpu=fr450" } */ +/* { dg-do compile } */ +/* { dg-final { scan-assembler "mqmulhu.p\[^\t\]*\t*mrdacc" } } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MQMULHU (0, 0x0011002200330044ULL, 0x0002000300040001ULL); + __MQMULHU (8, 0x0100020003000400ULL, 0x0001000200030004ULL); + + /* 0x22 + 0x66 + 0xcc + 0x44 = 0x198 */ + /* 0x100 + 0x400 + 0x900 + 0x1000 = 0x1e00 */ + if (__MRDACC (0) + __MRDACC (1) + + __MRDACC (2) + __MRDACC (3) + + __MRDACC (8) + __MRDACC (9) + + __MRDACC (10) + __MRDACC (11) != 0x1f98) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-7.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-8.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-8.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-8.c (revision 317) @@ -0,0 +1,22 @@ +/* Test a situation in which an M6 instruction (mdcutssi) and M4 instruction + (mqmulhu) can be issued together. */ +/* { dg-options "-mcpu=fr450" } */ +/* { dg-do run } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MQMULHU (0, 0x0001001101111111ULL, 0x0001000200030004ULL); + __MQMULHU (8, 0x0002002202222222ULL, 0x0004000400040004ULL); + if (__MDCUTSSI (0, 8) + + __MDCUTSSI (2, 8) + + __MDCUTSSI (8, 8) + + __MDCUTSSI (10, 8) + != (0x0000000100000022ULL + 0x0000033300004444ULL + + 0x0000000800000088ULL + 0x0000088800008888ULL)) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-8.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: testsuite/gcc.target/frv/fr450-builtins-9.c =================================================================== --- testsuite/gcc.target/frv/fr450-builtins-9.c (nonexistent) +++ testsuite/gcc.target/frv/fr450-builtins-9.c (revision 317) @@ -0,0 +1,23 @@ +/* Test a situation in which an M6 instruction (mdcutssi) and M4 instruction + (mqmulhu) can be issued together. */ +/* { dg-options "-O2 -mcpu=fr450" } */ +/* { dg-do compile } */ +/* { dg-final { scan-assembler "mqmulhu.p\[^\t\]*\t*mdcutssi" } } */ +extern void abort (void); +extern void exit (int); + +int +main () +{ + __MQMULHU (0, 0x0001001101111111ULL, 0x0001000200030004ULL); + __MQMULHU (8, 0x0002002202222222ULL, 0x0004000400040004ULL); + if (__MDCUTSSI (0, 8) + + __MDCUTSSI (2, 8) + + __MDCUTSSI (8, 8) + + __MDCUTSSI (10, 8) + != (0x0000000100000022ULL + 0x0000033300004444ULL + + 0x0000000800000088ULL + 0x0000088800008888ULL)) + abort (); + + exit (0); +}
testsuite/gcc.target/frv/fr450-builtins-9.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.