]> bbs.cooldavid.org Git - net-next-2.6.git/blame - arch/parisc/lib/libgcc/__ashldi3.c
Linux 2.6.24-rc4
[net-next-2.6.git] / arch / parisc / lib / libgcc / __ashldi3.c
CommitLineData
efb80e7e
KM
1#include "libgcc.h"
2
3u64 __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}
19EXPORT_SYMBOL(__ashldi3);