1/* 2 * Written by J.T. Conklin <jtc@netbsd.org>. 3 * Public domain. 4 * Adapted for NetBSD/x86_64 by Frank van der Linden <fvdl@wasabisystems.com> 5 */ 6 7#include <machine/asm.h> 8 9ENTRY(strrchr) 10 movb %sil,%cl 11 xorq %rax,%rax /* init pointer to null */ 12L1: 13 movb (%rdi),%dl 14 cmpb %dl,%cl 15 jne L2 16 movq %rdi,%rax 17L2: 18 incq %rdi 19 testb %dl,%dl /* null terminator??? */ 20 jnz L1 21 ret 22