Added more regression test to the pic port. Added support for <<, >>, ^
[fw/sdcc] / src / regression / arrays.c
1 //#include "p16c84.h"
2
3 unsigned char success = 0;
4 unsigned char failures = 0;
5 unsigned char dummy = 0;
6
7 bit bit0 = 0;
8 unsigned int aint0 = 0;
9 unsigned int aint1 = 0;
10 unsigned char achar0 = 0;
11 unsigned char achar1 = 0;
12
13 void
14 done ()
15 {
16
17   dummy++;
18
19 }
20
21 void
22 bool_or1 (void)
23 {
24
25   if ((achar0 > 0) || (achar1 > 0))
26     failures++;
27 }
28
29 void
30 bool_or2 (void)
31 {
32
33   if (achar0 || achar1)
34     failures++;
35 }
36
37 void
38 bool_test1 (void)
39 {
40
41   if ((achar0 == 0) || achar1)
42     failures++;
43 }
44
45
46 void
47 bool_test2 (void)
48 {
49
50   if ((achar0 == 0) || aint0)
51     failures++;
52 }
53
54 void
55 bool_and1 (void)
56 {
57
58   if (achar0 && achar1)
59     failures++;
60 }
61
62 void
63 bin_or1 (void)
64 {
65
66   char t;
67
68   t = achar0 | achar1;
69   if (t)
70     failures++;
71 }
72
73 void
74 bin_xor1 (void)
75 {
76
77   if (achar0 ^ achar1)
78     failures++;
79 }
80
81
82 void
83 bool_test3 (void)
84 {
85
86   if ((achar0 == 0x42) || (achar1 == 42))
87     failures++;
88 }
89
90
91 void
92 bool_or_lit1 (void)
93 {
94
95   achar0 |= 0x0f;
96
97   if (achar0 > 0x10)
98     failures++;
99
100   if ((achar0 | 0x10) > 0xf0)
101     failures++;
102
103 }
104
105 void
106 bool_and_lit1 (void)
107 {
108
109   achar0 &= 0xf0;
110
111   if (achar0 > 0x10)
112     failures++;
113
114   if ((achar0 & 0x10) > 0xf0)
115     failures++;
116
117   achar0 &= 0xef;
118
119 }
120
121 void
122 main (void)
123 {
124
125   bool_or1 ();
126   bool_or2 ();
127   bool_and1 ();
128   bin_or1 ();
129   bin_xor1 ();
130
131   achar0++;
132   bool_and1 ();
133   bool_test1 ();
134   bool_test2 ();
135   bool_test3 ();
136
137
138   achar0--;
139   achar1++;
140   bool_and1 ();
141
142   achar0 = 0;
143   achar1 = 0;
144
145   bool_or_lit1 ();
146   bool_and_lit1 ();
147
148   success = failures;
149   done ();
150 }