/* $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