Messages in this thread | | | Date | Fri, 1 Sep 2000 17:03:48 +0300 | From | Matti Aarnio <> | Subject | Re: Large File support and blocks. |
| |
On Fri, Sep 01, 2000 at 03:15:27PM +0200, Andi Kleen wrote: > > ( Not 'unsigned long long' ) > > The shift on pbm_offset operates on long long.
Uh, somehow I thought the reference was about bh->b_blocknr; Ok, never mind.
> The previous analysis was not quite right though (%cl is actually loaded, > just %eax gets bogus input from the long long shift)
Register pressure burst at i386 ?
... [div64] ... > So what do you propose to use when a long long division is needed (after > much thought and considering all alternatives etc.etc.) ?
Huh ? No nice power-of-two and shifting ? (In filesystem side there is - AFFS or HFS - some which have non-power-of-two block sizes, but luckily those variants are also limited under 2G in file size...)
Perhaps redoing div64() in inlined function instead of side-effectfull macro with explite variable passing via reference.
Perhaps sacrificing a bit more, and using explicite div64() function which is exported in symbols (and explicite variable passing via reference)
After all, if one really must use it, do it explicite, but first of all: reliable.
It is dividend64/divisor32 -> remainder64,modulo32 after all. (E.g. SLOW(er than 32/32 -> 32,32))
> -Andi
/Matti Aarnio - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |