#include "libgcc.h" | |
u64 __ashldi3(u64 v, int cnt) | |
{ | |
int c = cnt & 31; | |
u32 vl = (u32) v; | |
u32 vh = (u32) (v >> 32); | |
if (cnt & 32) { | |
vh = (vl << c); | |
vl = 0; | |
} else { | |
vh = (vh << c) + (vl >> (32 - c)); | |
vl = (vl << c); | |
} | |
return ((u64) vh << 32) + vl; | |
} | |
EXPORT_SYMBOL(__ashldi3); |