1 
2 
3 long
__mulsi3(unsigned long a,unsigned long b)4 __mulsi3(unsigned long a, unsigned long b)
5 {
6   long res = 0;
7   while (a)
8     {
9       if (a & 1)
10 	{
11 	  res += b;
12 	}
13       b <<= 1;
14       a >>=1;
15     }
16   return res;
17 }
18