Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5757b284 authored by Hirokazu Takata's avatar Hirokazu Takata Committed by Linus Torvalds
Browse files

[PATCH] m32r: Use asm-generic/div64.h



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: default avatarHitoshi Yamamoto <hitoshiy@isl.melco.co.jp>
Signed-off-by: default avatarHirokazu Takata <takata@linux-m32r.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 960c2a89
Loading
Loading
Loading
Loading
+1 −38
Original line number Diff line number Diff line
#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>