]>
Commit | Line | Data |
---|---|---|
efb80e7e KM |
1 | #include "libgcc.h" |
2 | ||
3 | u64 __ashldi3(u64 v, int cnt) | |
4 | { | |
5 | int c = cnt & 31; | |
6 | u32 vl = (u32) v; | |
7 | u32 vh = (u32) (v >> 32); | |
8 | ||
9 | if (cnt & 32) { | |
10 | vh = (vl << c); | |
11 | vl = 0; | |
12 | } else { | |
13 | vh = (vh << c) + (vl >> (32 - c)); | |
14 | vl = (vl << c); | |
15 | } | |
16 | ||
17 | return ((u64) vh << 32) + vl; | |
18 | } | |
19 | EXPORT_SYMBOL(__ashldi3); |