From: Michoo <michoo_news@vp.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Szybkie itoa - praktyka
Date: Tue, 20 Sep 2011 16:54:56 +0200
[...]Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
Organization: http://onet.pl
Lines: 33
Message-ID: <j5a9gk$vk8$1@news.onet.pl>
References: <j55kbe$sqt$1@news.onet.pl>
NNTP-Posting-Host: 83.238.197.12
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1316530516 32392 83.238.197.12 (20 Sep 2011 14:55:16 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 20 Sep 2011 14:55:16 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.20) Gecko/20110820 Icedove/3.1.12
In-Reply-To: <j55kbe$sqt$1@news.onet.pl>
Xref: news-archive.icm.edu.pl pl.comp.lang.c:296227
Wziąłem
arm-none-eabi-gcc (Sourcery G++ Lite 2010.09-51) 4.5.1
i dla kodu:
  49         char *ptr = result;
  50         do
  51         {
  52                 value /= 10;
  53                 *ptr++ = '0'+value%10;
  54         }
  55         while ((value/=10));

dostałem:
    0x08000298 <+0>:     movw    r3, #26215      ; 0x6667
    0x0800029a <+6>:     movt    r3, #26214      ; 0x6666
    0x0800029e <+10>:    mov     r4, r1
    0x080002a0 <+12>:    smull   r5, r12, r3, r0
    0x080002a4 <+16>:    asrs    r2, r0, #31
    0x080002a6 <+18>:    rsb     r2, r2, r12, asr #2
    0x080002aa <+22>:    smull   r0, r5, r3, r2
    0x080002ae <+26>:    asrs    r0, r2, #31
    0x080002b0 <+28>:    rsb     r0, r0, r5, asr #2
    0x080002b4 <+32>:    add.w   r5, r0, r0, lsl #2
    0x080002b8 <+36>:    sub.w   r2, r2, r5, lsl #1
    0x080002bc <+40>:    adds    r2, #48 ; 0x30
    0x080002be <+42>:    strb.w  r2, [r4], #1
    0x080002c2 <+46>:    cmp     r0, #0
    0x080002c4 <+48>:    bne.n   0x80002a0 <itoa+12>

Nie wiem, czy ręczne rzeźbienie coś jest tu jeszcze w stanie pomóc.

-- 
Pozdrawiam
Michoo