1 /* $OpenBSD: rindex.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */
2 /*
3 * Written by J.T. Conklin <jtc@netbsd.org>.
4 * Public domain.
5 */
7 #include <machine/asm.h>
9 #ifdef STRRCHR
10 ENTRY(strrchr)
11 #else
12 ENTRY(rindex)
13 #endif
14 pushl %ebx
15 movl 8(%esp),%edx
16 movb 12(%esp),%cl
17 xorl %eax,%eax /* init pointer to null */
18 .align 2,0x90
19 L1:
20 movb (%edx),%bl
21 cmpb %bl,%cl
22 jne L2
23 movl %edx,%eax
24 L2:
25 incl %edx
26 testb %bl,%bl /* null terminator??? */
27 jnz L1
28 popl %ebx
29 ret