/[avr-libc]/avr-libc/libc/misc/itoa.S
ViewVC logotype

Diff of /avr-libc/libc/misc/itoa.S

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by aesok, Wed Oct 12 20:41:59 2005 UTC revision 1.7 by aesok, Wed Oct 19 20:12:45 2005 UTC
# Line 62  Line 62 
62    
63    
64  _U(itoa):  _U(itoa):
65          mov     ZL, r_str_lo    ; &string          X_movw  ZL, r_str_lo    ; &string
66          mov     ZH, r_str_hi          X_movw  r_lstr_lo, ZL   ; save &string
         mov     r_lstr_lo, ZL   ; save &string  
         mov     r_lstr_hi, ZH  
67          clt                     ; make sure T flag is clear          clt                     ; make sure T flag is clear
68          cpi     r_radix, 2      ; no radix < 2          cpi     r_radix, 2      ; no radix < 2
69          brlt    99f             ; return with \0          brlt    99f             ; return with \0
# Line 90  _U(itoa): Line 88  _U(itoa):
88          subi    r24, 0xd9       ; + 'a' - 10 - '0'          subi    r24, 0xd9       ; + 'a' - 10 - '0'
89  10:  10:
90          st      Z+, r24         ; write char to string in reverse order          st      Z+, r24         ; write char to string in reverse order
91          mov     r_val_lo, r22   ; quotient -> dividend          X_movw  r_val_lo, r22   ; quotient -> dividend
         mov     r_val_hi, r23  
92          sbiw    r_val_lo, 0     ; value == 0 ?          sbiw    r_val_lo, 0     ; value == 0 ?
93          brne    1b          brne    1b
94          brtc    99f             ; T flag clear? -> positive number                        brtc    99f             ; T flag clear? -> positive number              
95          ldi     r21, '-'          ldi     r21, '-'
96          st      Z+, r21         ; write minus sign to string          st      Z+, r21         ; write minus sign to string
97  99:      99:    
         mov     r_val_hi, r_lstr_hi     ; restore &string as return value  
         mov     r_val_lo, r_lstr_lo  
98          st      Z, __zero_reg__ ; terminate string          st      Z, __zero_reg__ ; terminate string
99            X_movw  r_val_lo, r_lstr_lo     ; restore &string as return value
100          XJMP    _U(strrev)      ; reverse string          XJMP    _U(strrev)      ; reverse string
101    
102          .endfunc          .endfunc

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26