/* $OpenBSD: rindex.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */ | |
/* | |
* Written by J.T. Conklin <jtc@netbsd.org>. | |
* Public domain. | |
*/ | |
#include <machine/asm.h> | |
#ifdef STRRCHR | |
ENTRY(strrchr) | |
#else | |
ENTRY(rindex) | |
#endif | |
pushl %ebx | |
movl 8(%esp),%edx | |
movb 12(%esp),%cl | |
xorl %eax,%eax /* init pointer to null */ | |
.align 2,0x90 | |
L1: | |
movb (%edx),%bl | |
cmpb %bl,%cl | |
jne L2 | |
movl %edx,%eax | |
L2: | |
incl %edx | |
testb %bl,%bl /* null terminator??? */ | |
jnz L1 | |
popl %ebx | |
ret |