Merge branch 'pxa-keypad'
[pandora-kernel.git] / arch / parisc / lib / libgcc / __muldi3.c
1 #include "libgcc.h"
2
3 union DWunion {
4         struct {
5                 s32 high;
6                 s32 low;
7         } s;
8         s64 ll;
9 };
10
11 s64 __muldi3(s64 u, s64 v)
12 {
13         const union DWunion uu = { .ll = u };
14         const union DWunion vv = { .ll = v };
15         union DWunion w = { .ll = __umulsidi3(uu.s.low, vv.s.low) };
16
17         w.s.high += ((u32)uu.s.low * (u32)vv.s.high
18                 + (u32)uu.s.high * (u32)vv.s.low);
19
20         return w.ll;
21 }
22 EXPORT_SYMBOL(__muldi3);