OSDN Git Service

Latest updates from FSF 4.7 branch
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / frv / all-accs-1.c
1 /* Check that ACCs and ACCGs are treated as global variables even if
2    media.h isn't included.  */
3 /* { dg-do run } */
4 /* { dg-options "-fno-lto" } */
5 extern void abort (void);
6 extern void exit (int);
7
8 void
9 set ()
10 {
11 #define SET(X) __MWTACC (X, (X) | 0x100), __MWTACCG (X, X)
12   SET (0);
13   SET (1);
14   SET (2);
15   SET (3);
16 #if defined (__CPU_FR450__)
17   SET (8);
18   SET (9);
19   SET (10);
20   SET (11);
21 #elif __FRV_ACC__ > 4
22   SET (4);
23   SET (5);
24   SET (6);
25   SET (7);
26 #endif
27 #undef SET
28 }
29
30 void
31 check ()
32 {
33   int diff1, diff2;
34
35   diff1 = diff2 = 0;
36
37 #define CHECK(X) \
38         (diff1 |= (__MRDACC (X) ^ (X | 0x100)), \
39          diff2 |= (__MRDACCG (X) ^ X))
40   CHECK (0);
41   CHECK (1);
42   CHECK (2);
43   CHECK (3);
44 #if defined (__CPU_FR450__)
45   CHECK (8);
46   CHECK (9);
47   CHECK (10);
48   CHECK (11);
49 #elif __FRV_ACC__ > 4
50   CHECK (4);
51   CHECK (5);
52   CHECK (6);
53   CHECK (7);
54 #endif
55 #undef CHECK
56   if ((diff1 | diff2) != 0)
57     abort ();
58 }
59
60 int
61 main ()
62 {
63   set ();
64   check ();
65   exit (0);
66 }