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

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

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

revision 1.5 by troth, Thu Oct 9 17:20:30 2003 UTC revision 1.5.4.1 by aesok, Sun Oct 30 19:46:44 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  #include "macros.inc"  #include "macros.inc"
32    
33  #define src_hi r25  #define src_hi r25
# Line 49  Line 51 
51          .global _U(strlen)          .global _U(strlen)
52          .type   _U(strlen), @function          .type   _U(strlen), @function
53  _U(strlen):  _U(strlen):
54          LOAD_Z(src_lo, src_hi)          X_movw  ZL, src_lo
55  .strlen_loop:  .L_strlen_loop:
56          ld      __tmp_reg__, Z+          ld      __tmp_reg__, Z+
57          tst     __tmp_reg__          tst     __tmp_reg__
58          brne    .strlen_loop          brne    .L_strlen_loop
59  ; Z points one character past the terminating NUL  ; Z points one character past the terminating NUL
60  ; return Z - 1 - src = (-1 - src) + Z = ~src + Z  ; return Z - 1 - src = (-1 - src) + Z = ~src + Z
61          com     src_lo          com     src_lo
# Line 61  _U(strlen): Line 63  _U(strlen):
63          add     src_lo, ZL          add     src_lo, ZL
64          adc     src_hi, ZH          adc     src_hi, ZH
65          ret          ret
66  .strlen_end:  .L_strlen_end:
67          .size   _U(strlen), .strlen_end - _U(strlen)          .size   _U(strlen), .L_strlen_end - _U(strlen)
68    
69  #endif /* not DOXYGEN */  #endif /* not DOXYGEN */

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

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