Kyle, On Mon, 2011-03-14 at 14:04 -0500, Moffett, Kyle D wrote: > On 64-bit this change is basically a no-op, because do_div() is implemented > as a literal 64-bit divide operation and the instruction scheduling works out > almost the same. > > On 32-bit PowerPC a fully accurate 64/64 divide (__udivdi3 in libgcc) is > 1.1kb of code and hundreds or thousands of dependent cycles to compute, all > of which is linked in from libgcc. Another 1.2kb of code comes in for > __umoddi3. > > The original reason I wrote this patch is that the native "libgcc" on my > boards is hard-float and therefore generates warnings when linking to it from > soft-float code. The toolchain is the native Debian powerpc (or powerpcspe), > and most other native PowerPC distributions are also hard-float-only. > > When I combine this patch with the other patch I posted to create a minimal > internal libgcc with a few 64-bit shift functions from the linux kernel, I > can successfully build U-Boot on those native PowerPC systems. >
Points taken. Can you explain your algorithm? I see you want to do clks/5^12/2^13, but I don't see when the clks is divided by 5^12. Did I miss some lines? York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot