From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dirk Behme Date: Tue, 31 Jul 2007 21:26:40 +0200 Subject: [U-Boot-Users] ARM missing __udivdi3 in lib_arm or fix 64bit division in nand_util.c? In-Reply-To: <1defaf580707310117y20a64a5cl7f6f2f6c6c6747c2@mail.gmail.com> References: <46AECACB.2020003@googlemail.com> <1defaf580707310117y20a64a5cl7f6f2f6c6c6747c2@mail.gmail.com> Message-ID: <46AF8CF0.7090600@googlemail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de H?vard Skinnemoen wrote: > On 7/31/07, Dirk Behme wrote: > >>In lib_arm __udivsi3 and friends are available, but __udivdi3 is >>missing. There is a fix by modifying nand_util.c >> >>http://sourceforge.net/mailarchive/forum.php?thread_name=468D2650.10603%40rfo.atmel.com&forum_name=u-boot-users >> >>to not do any 64bit divisions any more. Now, I wonder what is the >>correct fix for this? Should lib_arm provide __udivdi3 as well or >>should nand_util.c be fixed as in above link to avoid 64bit divisions? > > I can't speak for ARM, but I believe this is a problem for most > architectures. In general, I think we should seriously consider moving > lib_avr32/div64.c into lib_generic and start to use it for 64-bit > division instead of relying on libgcc. U-Boot NG has already done > this. Something like in attachment? > In this particular case, I think it's just ridiculously expensive to > do _three_ 64-bit divisions just to implement a simple progress bar > and they should all go away. It looks like Patrice's patch might give > a bit weird results when crossing a 4G boundary but I don't see any > easy way around it. Perhaps we should just drop the whole percentage > complete thing and just show a nice N / M fraction? Sounds good! Do you have some code for this? Dirk -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: div64_generic_patch.txt Url: http://lists.denx.de/pipermail/u-boot/attachments/20070731/30b15fe6/attachment.txt