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

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

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

revision 1.7 by joerg_wunsch, Tue Sep 13 13:29:54 2005 UTC revision 1.8 by aesok, Wed Oct 26 20:50:53 2005 UTC
# Line 72  Line 72 
72  .type _U(strstr), @function  .type _U(strstr), @function
73  _U(strstr):  _U(strstr):
74    
75          LOAD_X(s1_lo, s1_hi)          X_movw  XL, s1_lo
76          LOAD_Z(s2_lo, s2_hi)          X_movw  ZL, s2_lo
77          ld      chr2, Z+          ld      chr2, Z+
78          tst     chr2            ; is str2 empty?          tst     chr2            ; is str2 empty?
79          brne    .L_findstart          brne    .L_findstart
80          ret                     ; return original string (req'd by standard)          ret                     ; return original string (req'd by standard)
81    
82  .L_findstart:  .L_findstart:
83          LOAD_Z(s2_lo, s2_hi)    ; reset Z pointer          X_movw  ZL, s2_lo       ; reset Z pointer
84          ld      chr2, Z+        ; fetch first char          ld      chr2, Z+        ; fetch first char
85    
86  .L_findstart_loop:              ; Find first char  .L_findstart_loop:              ; Find first char
# Line 88  _U(strstr): Line 88  _U(strstr):
88          tst     chr1            ; Is str1 @ end?          tst     chr1            ; Is str1 @ end?
89          breq    .L_no_match     ; then return          breq    .L_no_match     ; then return
90          cp      chr1, chr2      ; Is chr1 == chr2?          cp      chr1, chr2      ; Is chr1 == chr2?
91            X_movw  ret_lo, XL      ; store return value
         mov     ret_lo, XL      ; store return value  
         mov     ret_hi, XH  
   
92          brne    .L_findstart_loop ; If, then start checking string          brne    .L_findstart_loop ; If, then start checking string
93    
94  .L_stringloop:  .L_stringloop:

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

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