OSDN Git Service

newlib:
[pf3gnuchains/pf3gnuchains3x.git] / newlib / libc / machine / rx / strlen.S
1         .file   "strlen.S"
2
3         .section .text
4         
5         .global  _strlen
6         .type    _strlen,@function
7 _strlen:
8         add     #0, r1, r4      ; Save a copy of the string start address and set the condition flags.
9         beq     null_string     ; Test for a NULL pointer.
10         mov     #-1, r3         ; Set a limit on the number of bytes examined.
11         mov     #0,  r2         ; Stop searching when we find a NUL byte.
12         suntil.b                ; Search until *r1 == r2
13         sub     #1, r1          ; suntil.b leaves r1 pointing to the byte beyond the match.
14 null_string:
15         sub     r4, r1          ; Compute the length.
16         rts