Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/libgcc/__ashrdi3.c
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File MIME type: text/plain
File size: 388 byte(s)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File MIME type: text/plain
File size: 388 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/__ashrdi3.c |
3 | */ |
4 | |
5 | #include <stdint.h> |
6 | #include <stddef.h> |
7 | |
8 | uint64_t __ashrdi3(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 | vl = ((int32_t) vh >> c); |
16 | vh = (int32_t) vh >> 31; |
17 | } else { |
18 | vl = (vl >> c) + (vh << (32 - c)); |
19 | vh = ((int32_t) vh >> c); |
20 | } |
21 | |
22 | return ((uint64_t) vh << 32) + vl; |
23 | } |