summaryrefslogtreecommitdiff
path: root/arch/parisc/lib/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc/lib/libgcc')
-rw-r--r--arch/parisc/lib/libgcc/Makefile4
-rw-r--r--arch/parisc/lib/libgcc/__ashldi3.c19
-rw-r--r--arch/parisc/lib/libgcc/__ashrdi3.c19
-rw-r--r--arch/parisc/lib/libgcc/__clzsi2.c30
-rw-r--r--arch/parisc/lib/libgcc/__divdi3.c23
-rw-r--r--arch/parisc/lib/libgcc/__divsi3.c23
-rw-r--r--arch/parisc/lib/libgcc/__lshrdi3.c19
-rw-r--r--arch/parisc/lib/libgcc/__moddi3.c23
-rw-r--r--arch/parisc/lib/libgcc/__modsi3.c23
-rw-r--r--arch/parisc/lib/libgcc/__muldi3.c22
-rw-r--r--arch/parisc/lib/libgcc/__udivdi3.c7
-rw-r--r--arch/parisc/lib/libgcc/__udivmoddi4.c31
-rw-r--r--arch/parisc/lib/libgcc/__udivmodsi4.c31
-rw-r--r--arch/parisc/lib/libgcc/__udivsi3.c7
-rw-r--r--arch/parisc/lib/libgcc/__umoddi3.c10
-rw-r--r--arch/parisc/lib/libgcc/__umodsi3.c10
-rw-r--r--arch/parisc/lib/libgcc/__umulsidi3.c46
-rw-r--r--arch/parisc/lib/libgcc/libgcc.h32
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 b67a85ad9c87..000000000000
--- 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 a14a257abb2b..000000000000
--- 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 8636a5aa4f77..000000000000
--- 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 a7aa2f55a9c6..000000000000
--- 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 f23c6fe2838b..000000000000
--- 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 730fb530680d..000000000000
--- 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 4a820708ec57..000000000000
--- 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 ed64bbafc989..000000000000
--- 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 62f773efaeea..000000000000
--- 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 3308abdd5580..000000000000
--- 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 740023d690f5..000000000000
--- 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 2df0caa5a7d8..000000000000
--- 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 2a2fc28b2026..000000000000
--- 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 756a44164e90..000000000000
--- 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 ac744e948bc1..000000000000
--- 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 51f55aa89f9a..000000000000
--- 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 396f669164d4..000000000000
--- 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 5a6f7a510fbd..000000000000
--- 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_*/