/[avr-libc]/avr-libc/libc/string/strupr.S
ViewVC logotype

Diff of /avr-libc/libc/string/strupr.S

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

revision 1.4 by joerg_wunsch, Tue Sep 13 13:29:54 2005 UTC revision 1.5 by aesok, Sat Nov 5 16:49:46 2005 UTC
# Line 26  Line 26 
26    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27    POSSIBILITY OF SUCH DAMAGE. */    POSSIBILITY OF SUCH DAMAGE. */
28    
29    /* $Id$ */
30    
31  /*  /*
32     strupr.S     strupr.S
33     Convert a string to upper case     Convert a string to upper case
# Line 54  Line 56 
56    
57  #if !defined(__DOXYGEN__)  #if !defined(__DOXYGEN__)
58    
59      .text          .text
60      .global _U(strupr)          .global _U(strupr)
61      .type   _U(strupr), @function          .type   _U(strupr), @function
62    
63  _U(strupr):  _U(strupr):
64      LOAD_X(str_lo, str_hi)          X_movw  XL, str_lo
65  .strupr_loop:  .L_strupr_loop:
66      LD    temp, X           ; get 1st character          LD      temp, X         ; get 1st character
67      TST   temp              ; is it end of string          TST     temp            ; is it end of string
68      BREQ  .strupr_done          BREQ    .L_strupr_done
69      ANDI  temp, 0xDF        ; make upper case          ANDI    temp, 0xDF      ; make upper case
70      CPI   temp, 'A'         ; test on [a .. z]          CPI     temp, 'A'       ; test on [a .. z]
71      BRLT  .strupr_next          BRLT    .L_strupr_next
72      CPI   temp, 'Z'+1          CPI     temp, 'Z'+1
73      BRGE  .strupr_next          BRGE    .L_strupr_next
74      ST    X, temp           ; ok, it is a char --> store it          ST      X, temp         ; ok, it is a char --> store it
75  .strupr_next:  .L_strupr_next:
76      ADIW  XL, 1                         ; point to next character          ADIW    XL, 1           ; point to next character
77          RJMP  .strupr_loop          RJMP    .L_strupr_loop
78  .strupr_done:  .L_strupr_done:
79      RET          RET
80  .strupr_end:  .L_strupr_end:
81          .size _U(strupr), .strupr_end - _U(strupr)          .size   _U(strupr), .L_strupr_end - _U(strupr)
82    
83  #endif /* not __DOXYGEN__ */  #endif /* not __DOXYGEN__ */

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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