Added more regression test to the pic port. Added support for <<, >>, ^
[fw/sdcc] / src / regression / rotate2.c
1 // Shift bytes left and right by a variable.
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 unsigned char achar2 = 0;
13 unsigned char achar3 = 0;
14
15 void done()
16 {
17
18   dummy++;
19
20 }
21
22 void shift_right_var(void)
23 {
24
25   achar0 >>= achar1;
26 }
27
28 void shift_left_var(void)
29 {
30
31   achar0 <<= achar1;
32 }
33
34 void shift_int_left_1(void)
35 {
36
37   aint0 <<= 1;
38
39 }
40
41 void main(void)
42 {
43   char i;
44
45   achar0 = 1;
46   achar1 = 1;
47   shift_left_var();
48
49   if(achar0 !=2)
50     failures++;
51
52   achar0 = 1;
53   achar1 = 1;
54   achar2 = 1;
55   for(i=0; i<7; i++) {
56     shift_left_var();
57     achar2 <<= 1;
58
59     if(achar2 != achar0)
60       failures++;
61   }
62
63   success=failures;
64   done();
65 }