summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbraham van der Merwe <abraham@2d3d.co.za>2002-03-22 00:28:17 +0000
committerRussell King <rmk@flint.arm.linux.org.uk>2002-03-22 00:28:17 +0000
commit684bb802cda7487484c74e8fd346c35833100d75 (patch)
treefb8fe494879c70984aeb9ae72a15c329fcefa68c
parent51a8fac4ab1ff572d022b1255e16ea6a6fe7dee6 (diff)
[PATCH] 1083/1: 64-bit unsigned modulo arithmetic support
I've added support for 64-bit modulo arithmetic on ARM. This is needed for the video4linux API to function properly and since there's already support for 64-bit divides, I think there shouldn't be any reason for the absence of this.
-rw-r--r--arch/arm/kernel/armksyms.c2
-rw-r--r--arch/arm/lib/udivdi3.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index a84ba04ad73e..4235f4932cd8 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -64,6 +64,7 @@ extern void __modsi3(void);
extern void __muldi3(void);
extern void __ucmpdi2(void);
extern void __udivdi3(void);
+extern void __umoddi3(void);
extern void __udivmoddi4(void);
extern void __udivsi3(void);
extern void __umodsi3(void);
@@ -227,6 +228,7 @@ EXPORT_SYMBOL_NOVERS(__modsi3);
EXPORT_SYMBOL_NOVERS(__muldi3);
EXPORT_SYMBOL_NOVERS(__ucmpdi2);
EXPORT_SYMBOL_NOVERS(__udivdi3);
+EXPORT_SYMBOL_NOVERS(__umoddi3);
EXPORT_SYMBOL_NOVERS(__udivmoddi4);
EXPORT_SYMBOL_NOVERS(__udivsi3);
EXPORT_SYMBOL_NOVERS(__umodsi3);
diff --git a/arch/arm/lib/udivdi3.c b/arch/arm/lib/udivdi3.c
index d3f05b4e6ea0..d25195f673f4 100644
--- a/arch/arm/lib/udivdi3.c
+++ b/arch/arm/lib/udivdi3.c
@@ -229,3 +229,14 @@ __udivdi3 (UDItype n, UDItype d)
{
return __udivmoddi4 (n, d, (UDItype *) 0);
}
+
+UDItype
+__umoddi3 (UDItype u, UDItype v)
+{
+ UDItype w;
+
+ (void) __udivmoddi4 (u ,v, &w);
+
+ return w;
+}
+