[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-libc-dev] avr-libc: optimization for ltoa/printf

From: Dmitry E. Oboukhov
Subject: Re: [avr-libc-dev] avr-libc: optimization for ltoa/printf
Date: Thu, 16 Jun 2011 17:31:22 +0400
User-agent: Mutt/1.5.21 (2010-09-15)

> Hi Dmitry,

> Thanks for looking at this optimization.

> I would be interested to know how the algorithm also compares on code size. 
> This is another important metric for avr-libc.

current variant takes 362 bytes .text and 209 bytes in .progmem

ltoa teakes (see benchmarks.html) 220-200 bytes.

But current libc de-facto contains two ltoa: ltoa and __ultoa_invert
(for printf). So if we replace one of them (__ultoa_invert) we will be
able to have a bit overhead.

Also I provided a few tables for a few radixes, I think that two
general radixes must be provided (10 and 16) or even only 10.

main cycle:

        for (i = j = 0, first = 1; i < max; i++) {
                unsigned long check = pgm_read_dword(d + i);
                if (check > __val) {
                        if (first)
                        __s[j++] = '0';
                first = k = 0;
                while(check <= __val) {
                        __val -= check;

                __s[j++] = pgm_read_byte(letters + k);

        if (first)
                __s[j++] = '0';
        __s[j] = 0;

        return __s;

can be rewritten using ASM and also be reduced. But I haven't enough
exps to do that.

> And could you please subscribe to the avr-libc mailing list? That way your 
> posts do not have to be approved. :-)

avr-libc or avr-libc-dev?
I had subscribed avr-libc-dev and then sent the mail.

Here https://savannah.nongnu.org/mail/?group=avr-libc
I've found two maillist: avr-libc-dev and avr-libc-corelib. I've
subscribed avr-libc-dev because avr-libc-corelib is in inactive state
since 2010-08.

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: address@hidden jabber://address@hidden
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]