summaryrefslogtreecommitdiffstats
path: root/arch/sh/lib/udivdi3.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/lib/udivdi3.c')
-rw-r--r--arch/sh/lib/udivdi3.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/sh/lib/udivdi3.c b/arch/sh/lib/udivdi3.c
new file mode 100644
index 00000000000..68f038bf3c5
--- /dev/null
+++ b/arch/sh/lib/udivdi3.c
@@ -0,0 +1,16 @@
+/*
+ * Simple __udivdi3 function which doesn't use FPU.
+ */
+
+#include <linux/types.h>
+
+extern u64 __xdiv64_32(u64 n, u32 d);
+extern void panic(const char * fmt, ...);
+
+u64 __udivdi3(u64 n, u64 d)
+{
+ if (d & ~0xffffffff)
+ panic("Need true 64-bit/64-bit division");
+ return __xdiv64_32(n, (u32)d);
+}
+