More enhancements to register optimization algorithms.
[fw/sdcc] / src / regression / mult1.c
1 unsigned char success=0;
2 unsigned char failures=0;
3 unsigned char dummy=0;
4
5
6 signed char c1,c2,c3;
7 unsigned char uc1,uc2,uc3;
8
9 unsigned int ui1,ui2,ui3;
10 signed int i1,i2;
11
12 void done()
13 {
14
15   dummy++;
16
17 }
18
19 void m1(void)
20 {
21
22   c1 = c1*5;       // char = char * lit
23
24   c2 = c1 *c3;     // char = char * char
25
26   uc1= uc1*5;      // uchar = uchar * lit
27   uc2=uc1*uc3;     // uchar = uchar * uchar
28
29   if(c2 != 25)
30     failures++;
31 }
32
33 void m2(unsigned char uc)
34 {
35
36   uc2 = uc1 * uc;
37
38   if(uc2 != 0x20)
39     failures++;
40 }
41
42 void main(void)
43 {
44   dummy = 0;
45
46   c1 = 1;
47   c3 = 5;
48
49   //m1();
50
51   uc1 = 0x10;
52   m2(2);
53
54   ui1 = uc1*uc2;   // uint = uchar * uchar
55
56   i1 = c1*c2;      // int = char * char
57
58   ui3 = ui1*ui2;   // uint = uint * unit
59
60
61   success = failures;
62   done();
63 }