12345678910111213141516171819 |
- #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);
|