aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/include/asm-arm/div64.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/xen/include/asm-arm/div64.h b/xen/include/asm-arm/div64.h
index f2574e5c8c..1cd58bc51a 100644
--- a/xen/include/asm-arm/div64.h
+++ b/xen/include/asm-arm/div64.h
@@ -21,6 +21,19 @@
* calling convention for arguments and results (beware).
*/
+
+#if BITS_PER_LONG == 64
+
+# define do_div(n,base) ({ \
+ uint32_t __base = (base); \
+ uint32_t __rem; \
+ __rem = ((uint64_t)(n)) % __base; \
+ (n) = ((uint64_t)(n)) / __base; \
+ __rem; \
+ })
+
+#elif BITS_PER_LONG == 32
+
#ifdef __ARMEB__
#define __xh "r0"
#define __xl "r1"
@@ -222,7 +235,9 @@
__nr; \
})
-#endif
+#endif /* GCC version */
+
+#endif /* BITS_PER_LONG */
#endif
/*