2 !!DESCRIPTION!! rotate bytes left and right by a constant.
3 !!ORIGIN!! SDCC regression tests
4 !!LICENCE!! GPL, read COPYING.GPL
10 unsigned char success=0;
11 unsigned char failures=0;
12 unsigned char dummy=0;
14 #ifdef SUPPORT_BIT_TYPES
17 #ifdef SIZEOF_INT_16BIT
18 #if defined(__LINUX__) || defined(LINUX)
19 unsigned short aint0 = 0;
20 unsigned short aint1 = 0;
23 unsigned int aint0 = 0;
24 unsigned int aint1 = 0;
29 unsigned int aint0 = 0;
30 unsigned int aint1 = 0;
33 unsigned char uchar0 = 0;
34 unsigned char uchar1 = 0;
35 unsigned char uchar2 = 0;
48 void rotate_left_1(void)
50 uchar0 = (uchar0<<1) | (uchar0>>7);
55 void rotate_left_2(void)
57 uchar0 = (uchar0<<2) | (uchar0>>6);
62 void rotate_left_3(void)
70 void rotate_left_4(void)
78 void rotate_left_5(void)
86 void rotate_left_6(void)
94 void rotate_left_7(void)
102 void rotate_right_1(void)
104 uchar0 = (uchar0>>1) | (uchar0<<7);
109 void rotate_right_2(void)
111 uchar0 = (uchar0>>2) | (uchar0<<6);
116 void rotate_right_3(void)
123 void rotate_right_4(void)
130 void rotate_right_5(void)
137 void rotate_right_6(void)
144 void rotate_right_7(void)
153 /* call with both values zero */
167 for(uchar2=0; uchar2<6; uchar2++) {
225 printf("failures: %d\n",failures);