Re: [RFC] div64_64 support
From: Jan Engelhardt <hidden>
Date: 2007-02-26 23:03:45
Also in:
lkml
On Feb 26 2007 13:28, Stephen Hemminger wrote:
quoted
./arch/arm26/lib/udivdi3.c ./arch/sh/lib/udivdi3.c ./arch/sparc/lib/udivdi3.S should not this be consolidated too?Hmm. Those are the GCC internal versions, that are picked up but doing divide in place. Do we want to allow general 64 bit in kernel to be easily used? It could cause sloppy slow code, but it would look cleaner.
Then our reviewers should catch it, and if not, the janitors will (/me winks at R.P.J.Day and trivial@).
quoted hunk ↗ jump to hunk
@@ -134,7 +112,7 @@*/ do { x1 = x; - x = (2 * x + (uint32_t) div64_64(a, x*x)) / 3; + x = (2 * x + (u32) (a / x*x)) / 3;
Eye see a bug. Previously there was div64_64(a, x*x) which is equivalent to (a)/(x*x), or just: a/(x^2). But now you do a/x*x, which is equivalent to a*x/x (in the domain of real numbers). Furthermore, a/x*x is a-(a%x), which does not even remotely match a/(x^2). Please keep the math intact, thank you ;-) Jan --