Imported Upstream version 2.9.0
[debian/cc1111] / src / regression / rotate2.c
1 #include "gpsim_assert.h"
2 // Shift bytes left and right by a variable.
3
4 unsigned char failures=0;
5
6 unsigned int aint0 = 0;
7 unsigned int aint1 = 0;
8 unsigned char achar0 = 0;
9 unsigned char achar1 = 0;
10 unsigned char achar2 = 0;
11 unsigned char achar3 = 0;
12
13 void
14 done()
15 {
16   ASSERT(MANGLE(failures) == 0);
17   PASSED();
18 }
19
20 void shift_right_var(void)
21 {
22
23   achar0 >>= achar1;
24 }
25
26 void shift_left_var(void)
27 {
28
29   achar0 <<= achar1;
30 }
31
32 void shift_int_left_1(void)
33 {
34
35   aint0 <<= 1;
36
37 }
38
39 void main(void)
40 {
41   char i;
42
43   achar0 = 1;
44   achar1 = 1;
45   shift_left_var();
46
47   if(achar0 !=2)
48     failures++;
49
50   achar0 = 1;
51   achar1 = 1;
52   achar2 = 1;
53   for(i=0; i<7; i++) {
54     shift_left_var();
55     achar2 <<= 1;
56
57     if(achar2 != achar0)
58       failures++;
59   }
60
61   done();
62 }