Subversion Repositories HelenOS-historic

Rev

Rev 804 | Rev 829 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 804 Rev 828
Line 327... Line 327...
327
    __u32 alow, blow;
327
    __u32 alow, blow;
328
   
328
   
329
    alow = a & 0xFFFFFFFF;
329
    alow = a & 0xFFFFFFFF;
330
    blow = b & 0xFFFFFFFF;
330
    blow = b & 0xFFFFFFFF;
331
   
331
   
332
    a <<= 32;
332
    a >>= 32;
333
    b <<= 32;
333
    b >>= 32;
334
   
334
   
335
    low = (__u64)alow * blow;
335
    low = ((__u64)alow) * blow;
336
    middle1 = a * blow;
336
    middle1 = a * blow;
337
    middle2 = alow * b;
337
    middle2 = alow * b;
338
    high = a * b;
338
    high = a * b;
339
 
339
 
340
    middle1 += middle2;
340
    middle1 += middle2;
341
    high += ((__u64)(middle1 < middle2) << 32) + (middle1 >> 32);
341
    high += (((__u64)(middle1 < middle2)) << 32) + (middle1 >> 32);
342
    middle1 <<= 32;
342
    middle1 <<= 32;
343
    low += middle1;
343
    low += middle1;
344
    high += (low < middle1);
344
    high += (low < middle1);
345
    *lo = low;
345
    *lo = low;
346
    *hi = high;
346
    *hi = high;
-
 
347
   
347
    return;
348
    return;
348
}
349
}
349
 
350
 
350
 
351