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

Commit d20f5aa3 authored by Greg Ungerer's avatar Greg Ungerer
Browse files

m68k: merge the mmu and non-mmu versions of div64.h



Trivial merge of the mmu and non-mmu versions of div64.h

Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
parent 76adcb2e
Loading
Loading
Loading
Loading
+33 −4
Original line number Diff line number Diff line
#ifdef __uClinux__
#include "div64_no.h"
#ifndef _M68K_DIV64_H
#define _M68K_DIV64_H

#ifdef CONFIG_MMU

#include <linux/types.h>

/* n = n / base; return rem; */

#define do_div(n, base) ({					\
	union {							\
		unsigned long n32[2];				\
		unsigned long long n64;				\
	} __n;							\
	unsigned long __rem, __upper;				\
								\
	__n.n64 = (n);						\
	if ((__upper = __n.n32[0])) {				\
		asm ("divul.l %2,%1:%0"				\
			: "=d" (__n.n32[0]), "=d" (__upper)	\
			: "d" (base), "0" (__n.n32[0]));	\
	}							\
	asm ("divu.l %2,%1:%0"					\
		: "=d" (__n.n32[1]), "=d" (__rem)		\
		: "d" (base), "1" (__upper), "0" (__n.n32[1]));	\
	(n) = __n.n64;						\
	__rem;							\
})

#else
#include "div64_mm.h"
#endif
#include <asm-generic/div64.h>
#endif /* CONFIG_MMU */

#endif /* _M68K_DIV64_H */

arch/m68k/include/asm/div64_mm.h

deleted100644 → 0
+0 −28
Original line number Diff line number Diff line
#ifndef _M68K_DIV64_H
#define _M68K_DIV64_H

#include <linux/types.h>

/* n = n / base; return rem; */

#define do_div(n, base) ({					\
	union {							\
		unsigned long n32[2];				\
		unsigned long long n64;				\
	} __n;							\
	unsigned long __rem, __upper;				\
								\
	__n.n64 = (n);						\
	if ((__upper = __n.n32[0])) {				\
		asm ("divul.l %2,%1:%0"				\
			: "=d" (__n.n32[0]), "=d" (__upper)	\
			: "d" (base), "0" (__n.n32[0]));	\
	}							\
	asm ("divu.l %2,%1:%0"					\
		: "=d" (__n.n32[1]), "=d" (__rem)		\
		: "d" (base), "1" (__upper), "0" (__n.n32[1]));	\
	(n) = __n.n64;						\
	__rem;							\
})

#endif /* _M68K_DIV64_H */

arch/m68k/include/asm/div64_no.h

deleted100644 → 0
+0 −1
Original line number Diff line number Diff line
#include <asm-generic/div64.h>