Skip to content

Commit

Permalink
[PATCH] m32r: Use asm-generic/div64.h
Browse files Browse the repository at this point in the history
The current include/asm-m32r/div64.h of 2.6.12-rc5 looks buggy.  Here is a
patch for updating it to use asm-generic/div64.h for m32r like other
architectures.

Signed-off-by: Hitoshi Yamamoto <[email protected]>
Signed-off-by: Hirokazu Takata <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
htakata authored and Linus Torvalds committed Jun 22, 2005
1 parent 960c2a8 commit 5757b28
Showing 1 changed file with 1 addition and 38 deletions.
39 changes: 1 addition & 38 deletions include/asm-m32r/div64.h
Original file line number Diff line number Diff line change
@@ -1,38 +1 @@
#ifndef _ASM_M32R_DIV64
#define _ASM_M32R_DIV64

/* $Id$ */

/* unsigned long long division.
* Input:
* unsigned long long n
* unsigned long base
* Output:
* n = n / base;
* return value = n % base;
*/
#define do_div(n, base) \
({ \
unsigned long _res, _high, _mid, _low; \
\
_low = (n) & 0xffffffffUL; \
_high = (n) >> 32; \
if (_high) { \
_mid = (_high % (unsigned long)(base)) << 16; \
_high = _high / (unsigned long)(base); \
_mid += _low >> 16; \
_low &= 0x0000ffffUL; \
_low += (_mid % (unsigned long)(base)) << 16; \
_mid = _mid / (unsigned long)(base); \
_res = _low % (unsigned long)(base); \
_low = _low / (unsigned long)(base); \
n = _low + ((long long)_mid << 16) + \
((long long)_high << 32); \
} else { \
_res = _low % (unsigned long)(base); \
n = (_low / (unsigned long)(base)); \
} \
_res; \
})

#endif /* _ASM_M32R_DIV64 */
#include <asm-generic/div64.h>

0 comments on commit 5757b28

Please sign in to comment.