diff options
Diffstat (limited to 'arch/parisc/lib/libgcc')
-rw-r--r-- | arch/parisc/lib/libgcc/Makefile | 4 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__ashldi3.c | 19 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__ashrdi3.c | 19 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__clzsi2.c | 30 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__divdi3.c | 23 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__divsi3.c | 23 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__lshrdi3.c | 19 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__moddi3.c | 23 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__modsi3.c | 23 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__muldi3.c | 22 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__udivdi3.c | 7 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__udivmoddi4.c | 31 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__udivmodsi4.c | 31 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__udivsi3.c | 7 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__umoddi3.c | 10 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__umodsi3.c | 10 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/__umulsidi3.c | 46 | ||||
-rw-r--r-- | arch/parisc/lib/libgcc/libgcc.h | 32 |
18 files changed, 0 insertions, 379 deletions
diff --git a/arch/parisc/lib/libgcc/Makefile b/arch/parisc/lib/libgcc/Makefile deleted file mode 100644 index b67a85ad9c8..00000000000 --- a/arch/parisc/lib/libgcc/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -obj-y := __ashldi3.o __ashrdi3.o __clzsi2.o __divdi3.o __divsi3.o \ - __lshrdi3.o __moddi3.o __modsi3.o __udivdi3.o \ - __udivmoddi4.o __udivmodsi4.o __udivsi3.o \ - __umoddi3.o __umodsi3.o __muldi3.o __umulsidi3.o diff --git a/arch/parisc/lib/libgcc/__ashldi3.c b/arch/parisc/lib/libgcc/__ashldi3.c deleted file mode 100644 index a14a257abb2..00000000000 --- a/arch/parisc/lib/libgcc/__ashldi3.c +++ /dev/null @@ -1,19 +0,0 @@ -#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); diff --git a/arch/parisc/lib/libgcc/__ashrdi3.c b/arch/parisc/lib/libgcc/__ashrdi3.c deleted file mode 100644 index 8636a5aa4f7..00000000000 --- a/arch/parisc/lib/libgcc/__ashrdi3.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "libgcc.h" - -u64 __ashrdi3(u64 v, int cnt) -{ - int c = cnt & 31; - u32 vl = (u32) v; - u32 vh = (u32) (v >> 32); - - if (cnt & 32) { - vl = ((s32) vh >> c); - vh = (s32) vh >> 31; - } else { - vl = (vl >> c) + (vh << (32 - c)); - vh = ((s32) vh >> c); - } - - return ((u64) vh << 32) + vl; -} -EXPORT_SYMBOL(__ashrdi3); diff --git a/arch/parisc/lib/libgcc/__clzsi2.c b/arch/parisc/lib/libgcc/__clzsi2.c deleted file mode 100644 index a7aa2f55a9c..00000000000 --- a/arch/parisc/lib/libgcc/__clzsi2.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "libgcc.h" - -u32 __clzsi2(u32 v) -{ - int p = 31; - - if (v & 0xffff0000) { - p -= 16; - v >>= 16; - } - if (v & 0xff00) { - p -= 8; - v >>= 8; - } - if (v & 0xf0) { - p -= 4; - v >>= 4; - } - if (v & 0xc) { - p -= 2; - v >>= 2; - } - if (v & 0x2) { - p -= 1; - v >>= 1; - } - - return p; -} -EXPORT_SYMBOL(__clzsi2); diff --git a/arch/parisc/lib/libgcc/__divdi3.c b/arch/parisc/lib/libgcc/__divdi3.c deleted file mode 100644 index f23c6fe2838..00000000000 --- a/arch/parisc/lib/libgcc/__divdi3.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "libgcc.h" - -s64 __divdi3(s64 num, s64 den) -{ - int minus = 0; - s64 v; - - if (num < 0) { - num = -num; - minus = 1; - } - if (den < 0) { - den = -den; - minus ^= 1; - } - - v = __udivmoddi4(num, den, NULL); - if (minus) - v = -v; - - return v; -} -EXPORT_SYMBOL(__divdi3); diff --git a/arch/parisc/lib/libgcc/__divsi3.c b/arch/parisc/lib/libgcc/__divsi3.c deleted file mode 100644 index 730fb530680..00000000000 --- a/arch/parisc/lib/libgcc/__divsi3.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "libgcc.h" - -s32 __divsi3(s32 num, s32 den) -{ - int minus = 0; - s32 v; - - if (num < 0) { - num = -num; - minus = 1; - } - if (den < 0) { - den = -den; - minus ^= 1; - } - - v = __udivmodsi4(num, den, NULL); - if (minus) - v = -v; - - return v; -} -EXPORT_SYMBOL(__divsi3); diff --git a/arch/parisc/lib/libgcc/__lshrdi3.c b/arch/parisc/lib/libgcc/__lshrdi3.c deleted file mode 100644 index 4a820708ec5..00000000000 --- a/arch/parisc/lib/libgcc/__lshrdi3.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "libgcc.h" - -u64 __lshrdi3(u64 v, int cnt) -{ - int c = cnt & 31; - u32 vl = (u32) v; - u32 vh = (u32) (v >> 32); - - if (cnt & 32) { - vl = (vh >> c); - vh = 0; - } else { - vl = (vl >> c) + (vh << (32 - c)); - vh = (vh >> c); - } - - return ((u64) vh << 32) + vl; -} -EXPORT_SYMBOL(__lshrdi3); diff --git a/arch/parisc/lib/libgcc/__moddi3.c b/arch/parisc/lib/libgcc/__moddi3.c deleted file mode 100644 index ed64bbafc98..00000000000 --- a/arch/parisc/lib/libgcc/__moddi3.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "libgcc.h" - -s64 __moddi3(s64 num, s64 den) -{ - int minus = 0; - s64 v; - - if (num < 0) { - num = -num; - minus = 1; - } - if (den < 0) { - den = -den; - minus ^= 1; - } - - (void)__udivmoddi4(num, den, (u64 *) & v); - if (minus) - v = -v; - - return v; -} -EXPORT_SYMBOL(__moddi3); diff --git a/arch/parisc/lib/libgcc/__modsi3.c b/arch/parisc/lib/libgcc/__modsi3.c deleted file mode 100644 index 62f773efaee..00000000000 --- a/arch/parisc/lib/libgcc/__modsi3.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "libgcc.h" - -s32 __modsi3(s32 num, s32 den) -{ - int minus = 0; - s32 v; - - if (num < 0) { - num = -num; - minus = 1; - } - if (den < 0) { - den = -den; - minus ^= 1; - } - - (void)__udivmodsi4(num, den, (u32 *) & v); - if (minus) - v = -v; - - return v; -} -EXPORT_SYMBOL(__modsi3); diff --git a/arch/parisc/lib/libgcc/__muldi3.c b/arch/parisc/lib/libgcc/__muldi3.c deleted file mode 100644 index 3308abdd558..00000000000 --- a/arch/parisc/lib/libgcc/__muldi3.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "libgcc.h" - -union DWunion { - struct { - s32 high; - s32 low; - } s; - s64 ll; -}; - -s64 __muldi3(s64 u, s64 v) -{ - const union DWunion uu = { .ll = u }; - const union DWunion vv = { .ll = v }; - union DWunion w = { .ll = __umulsidi3(uu.s.low, vv.s.low) }; - - w.s.high += ((u32)uu.s.low * (u32)vv.s.high - + (u32)uu.s.high * (u32)vv.s.low); - - return w.ll; -} -EXPORT_SYMBOL(__muldi3); diff --git a/arch/parisc/lib/libgcc/__udivdi3.c b/arch/parisc/lib/libgcc/__udivdi3.c deleted file mode 100644 index 740023d690f..00000000000 --- a/arch/parisc/lib/libgcc/__udivdi3.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "libgcc.h" - -u64 __udivdi3(u64 num, u64 den) -{ - return __udivmoddi4(num, den, NULL); -} -EXPORT_SYMBOL(__udivdi3); diff --git a/arch/parisc/lib/libgcc/__udivmoddi4.c b/arch/parisc/lib/libgcc/__udivmoddi4.c deleted file mode 100644 index 2df0caa5a7d..00000000000 --- a/arch/parisc/lib/libgcc/__udivmoddi4.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "libgcc.h" - -u64 __udivmoddi4(u64 num, u64 den, u64 * rem_p) -{ - u64 quot = 0, qbit = 1; - - if (den == 0) { - BUG(); - } - - /* Left-justify denominator and count shift */ - while ((s64) den >= 0) { - den <<= 1; - qbit <<= 1; - } - - while (qbit) { - if (den <= num) { - num -= den; - quot += qbit; - } - den >>= 1; - qbit >>= 1; - } - - if (rem_p) - *rem_p = num; - - return quot; -} -EXPORT_SYMBOL(__udivmoddi4); diff --git a/arch/parisc/lib/libgcc/__udivmodsi4.c b/arch/parisc/lib/libgcc/__udivmodsi4.c deleted file mode 100644 index 2a2fc28b202..00000000000 --- a/arch/parisc/lib/libgcc/__udivmodsi4.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "libgcc.h" - -u32 __udivmodsi4(u32 num, u32 den, u32 * rem_p) -{ - u32 quot = 0, qbit = 1; - - if (den == 0) { - BUG(); - } - - /* Left-justify denominator and count shift */ - while ((s32) den >= 0) { - den <<= 1; - qbit <<= 1; - } - - while (qbit) { - if (den <= num) { - num -= den; - quot += qbit; - } - den >>= 1; - qbit >>= 1; - } - - if (rem_p) - *rem_p = num; - - return quot; -} -EXPORT_SYMBOL(__udivmodsi4); diff --git a/arch/parisc/lib/libgcc/__udivsi3.c b/arch/parisc/lib/libgcc/__udivsi3.c deleted file mode 100644 index 756a44164e9..00000000000 --- a/arch/parisc/lib/libgcc/__udivsi3.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "libgcc.h" - -u32 __udivsi3(u32 num, u32 den) -{ - return __udivmodsi4(num, den, NULL); -} -EXPORT_SYMBOL(__udivsi3); diff --git a/arch/parisc/lib/libgcc/__umoddi3.c b/arch/parisc/lib/libgcc/__umoddi3.c deleted file mode 100644 index ac744e948bc..00000000000 --- a/arch/parisc/lib/libgcc/__umoddi3.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "libgcc.h" - -u64 __umoddi3(u64 num, u64 den) -{ - u64 v; - - (void)__udivmoddi4(num, den, &v); - return v; -} -EXPORT_SYMBOL(__umoddi3); diff --git a/arch/parisc/lib/libgcc/__umodsi3.c b/arch/parisc/lib/libgcc/__umodsi3.c deleted file mode 100644 index 51f55aa89f9..00000000000 --- a/arch/parisc/lib/libgcc/__umodsi3.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "libgcc.h" - -u32 __umodsi3(u32 num, u32 den) -{ - u32 v; - - (void)__udivmodsi4(num, den, &v); - return v; -} -EXPORT_SYMBOL(__umodsi3); diff --git a/arch/parisc/lib/libgcc/__umulsidi3.c b/arch/parisc/lib/libgcc/__umulsidi3.c deleted file mode 100644 index 396f669164d..00000000000 --- a/arch/parisc/lib/libgcc/__umulsidi3.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "libgcc.h" - -#define __ll_B ((u32) 1 << (32 / 2)) -#define __ll_lowpart(t) ((u32) (t) & (__ll_B - 1)) -#define __ll_highpart(t) ((u32) (t) >> 16) - -#define umul_ppmm(w1, w0, u, v) \ - do { \ - u32 __x0, __x1, __x2, __x3; \ - u16 __ul, __vl, __uh, __vh; \ - \ - __ul = __ll_lowpart (u); \ - __uh = __ll_highpart (u); \ - __vl = __ll_lowpart (v); \ - __vh = __ll_highpart (v); \ - \ - __x0 = (u32) __ul * __vl; \ - __x1 = (u32) __ul * __vh; \ - __x2 = (u32) __uh * __vl; \ - __x3 = (u32) __uh * __vh; \ - \ - __x1 += __ll_highpart (__x0);/* this can't give carry */ \ - __x1 += __x2; /* but this indeed can */ \ - if (__x1 < __x2) /* did we get it? */ \ - __x3 += __ll_B; /* yes, add it in the proper pos. */ \ - \ - (w1) = __x3 + __ll_highpart (__x1); \ - (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \ - } while (0) - -union DWunion { - struct { - s32 high; - s32 low; - } s; - s64 ll; -}; - -u64 __umulsidi3(u32 u, u32 v) -{ - union DWunion __w; - - umul_ppmm(__w.s.high, __w.s.low, u, v); - - return __w.ll; -} diff --git a/arch/parisc/lib/libgcc/libgcc.h b/arch/parisc/lib/libgcc/libgcc.h deleted file mode 100644 index 5a6f7a510fb..00000000000 --- a/arch/parisc/lib/libgcc/libgcc.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _PA_LIBGCC_H_ -#define _PA_LIBGCC_H_ - -#include <linux/types.h> -#include <linux/module.h> - -/* Cribbed from klibc/libgcc/ */ -u64 __ashldi3(u64 v, int cnt); -u64 __ashrdi3(u64 v, int cnt); - -u32 __clzsi2(u32 v); - -s64 __divdi3(s64 num, s64 den); -s32 __divsi3(s32 num, s32 den); - -u64 __lshrdi3(u64 v, int cnt); - -s64 __moddi3(s64 num, s64 den); -s32 __modsi3(s32 num, s32 den); - -u64 __udivdi3(u64 num, u64 den); -u32 __udivsi3(u32 num, u32 den); - -u64 __udivmoddi4(u64 num, u64 den, u64 * rem_p); -u32 __udivmodsi4(u32 num, u32 den, u32 * rem_p); - -u64 __umulsidi3(u32 u, u32 v); - -u64 __umoddi3(u64 num, u64 den); -u32 __umodsi3(u32 num, u32 den); - -#endif /*_PA_LIBGCC_H_*/ |