В Tue, 24 Feb 2015 19:01:03 +0100 Michael Zimmermann <sigmaepsilo...@gmail.com> пишет:
> what do u mean with "which is enabled on boot time."? > what do linux kernel and userspace applications use? > Software implementation provided either by libgcc or explicitly defined like grub does it (e.g. see arch/arm/lib/lib1funcs.S in linux source tree). gcc generates call to them in both cases. > On Tue, Feb 24, 2015 at 1:39 PM, Vladimir 'phcoder' Serbinenko > <phco...@gmail.com> wrote: > > > > > > Le Tue Feb 24 2015 at 12:48:10 PM, Michael Zimmermann > > <sigmaepsilo...@gmail.com> a écrit : > >> > >> thx I'll try that but wouldn't it make more sense to implement a hw > >> version of this function?(do I need a different compiler?) > >> > > AFAIK there isn't a consistent division instruction across all ARMs and > > which is enabled on boot time. > > You can implement hw version of division but it will crash on some machines. > > Division is a slow operation on any platform and should be avoided as far as > > possible. > >> > >> Almost all modules use this call and I guess it could really improve > >> the performance. > >> > >> On Tue, Feb 24, 2015 at 12:27 PM, Vladimir 'phcoder' Serbinenko > >> <phco...@gmail.com> wrote: > >> > > >> > > >> > Le Tue Feb 24 2015 at 11:01:03 AM, Michael Zimmermann > >> > <sigmaepsilo...@gmail.com> a écrit : > >> >> > >> >> the function seems to use __aeabi_uidiv. I'm not sure if this is a sw > >> >> or hw implementation. > >> > > >> > software. Try attached patch > >> >> > >> >> Full code: > >> >> ASM: http://pastebin.com/FnPRZt1H > >> >> pseudo-C: http://pastebin.com/dH3YBk46 > >> >> > >> >> On Tue, Feb 24, 2015 at 10:51 AM, Vladimir 'phcoder' Serbinenko > >> >> <phco...@gmail.com> wrote: > >> >> > Did you try to look at ASM of the function in question? Do you > >> >> > compile > >> >> > to > >> >> > thumb? Multiplication sometimes generates function calls in thumb. > >> >> > Try > >> >> > marking the scaling function as arm explicitly > >> >> > > >> >> > Le 2015-02-24 10:39, "Michael Zimmermann" <sigmaepsilo...@gmail.com> > >> >> > a > >> >> > écrit > >> >> > : > >> >> >> > >> >> >> Any ideas what could slow down the image scaling algorithm? > >> >> >> The only reasons I could think of would either be slow memory or > >> >> >> some > >> >> >> compiler problems. Since my Ram is mapped cachable I don't think the > >> >> >> RAM is too slow. > >> >> >> > >> >> >> I even forces using the Nearest neighbor algorithm already. It > >> >> >> speeds > >> >> >> things up a lot but it's not as fast as you'd expect. > >> >> >> > >> >> >> Some technical info: > >> >> >> ARMv7 > >> >> >> Linaro GCC 4.9 > >> >> >> MMU setup is done by the previous bootloader(I disabled GRUB's > >> >> >> (uboot) > >> >> >> MMU setup - it prooved to be faster) > >> >> >> > >> >> >> _______________________________________________ > >> >> >> Grub-devel mailing list > >> >> >> Grub-devel@gnu.org > >> >> >> https://lists.gnu.org/mailman/listinfo/grub-devel > >> >> > > >> >> > > >> >> > _______________________________________________ > >> >> > Grub-devel mailing list > >> >> > Grub-devel@gnu.org > >> >> > https://lists.gnu.org/mailman/listinfo/grub-devel > >> >> > > >> >> > >> >> _______________________________________________ > >> >> Grub-devel mailing list > >> >> Grub-devel@gnu.org > >> >> https://lists.gnu.org/mailman/listinfo/grub-devel > >> > > >> > > >> > _______________________________________________ > >> > Grub-devel mailing list > >> > Grub-devel@gnu.org > >> > https://lists.gnu.org/mailman/listinfo/grub-devel > >> > > >> > >> _______________________________________________ > >> Grub-devel mailing list > >> Grub-devel@gnu.org > >> https://lists.gnu.org/mailman/listinfo/grub-devel > > > > > > _______________________________________________ > > Grub-devel mailing list > > Grub-devel@gnu.org > > https://lists.gnu.org/mailman/listinfo/grub-devel > > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel