Magellan Linux

Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/libgcc/__ashldi3.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 532 - (show annotations) (download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File MIME type: text/plain
File size: 351 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd

1 /*
2 * libgcc/__ashldi3.c
3 */
4
5 #include <stdint.h>
6 #include <stddef.h>
7
8 uint64_t __ashldi3(uint64_t v, int cnt)
9 {
10 int c = cnt & 31;
11 uint32_t vl = (uint32_t) v;
12 uint32_t vh = (uint32_t) (v >> 32);
13
14 if (cnt & 32) {
15 vh = (vl << c);
16 vl = 0;
17 } else {
18 vh = (vh << c) + (vl >> (32 - c));
19 vl = (vl << c);
20 }
21
22 return ((uint64_t) vh << 32) + vl;
23 }