diff options
Diffstat (limited to 'newlib/libc/machine/rx/memchr.S')
-rw-r--r-- | newlib/libc/machine/rx/memchr.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/newlib/libc/machine/rx/memchr.S b/newlib/libc/machine/rx/memchr.S new file mode 100644 index 000000000..937753cef --- /dev/null +++ b/newlib/libc/machine/rx/memchr.S @@ -0,0 +1,13 @@ + .file "memchr.S" + + .section .text + + .global _memchr + .type _memchr,@function +_memchr: + cmp #0, r3 ; If r3 is 0 suntil.b will do nothing and not set any flags... + stz #1, r1 ; ...so store 1 into r1. It will be decremented by the SUB later. + suntil.b ; Search until *r1 == r2 or r3 bytes have been examined. + stnz #1, r1 ; If no match was found return NULL. + sub #1, r1 ; suntil.b leaves r1 pointing at the address *after* the match. + rts |