diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-02-22 08:57:56 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-02-22 12:14:52 +0000 |
commit | 7e6f5b0c94c6cbc5e625c41988fcf46e041f4ed1 (patch) | |
tree | 729c54b1bc29b11cf3ba0f950ab583e1902b888e /xen/include/asm-arm/div64.h | |
parent | 8c75419129ce1c40a3775ec1abc802b08bb29071 (diff) | |
download | xen-7e6f5b0c94c6cbc5e625c41988fcf46e041f4ed1.tar.gz xen-7e6f5b0c94c6cbc5e625c41988fcf46e041f4ed1.tar.bz2 xen-7e6f5b0c94c6cbc5e625c41988fcf46e041f4ed1.zip |
xen: arm64: div64
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/include/asm-arm/div64.h')
-rw-r--r-- | xen/include/asm-arm/div64.h | 17 |
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 /* |