xref: /openbsd-src/sys/lib/libkern/arch/amd64/index.S (revision daf88648c0e349d5c02e1504293082072c981640)
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
9#if defined(LIBC_SCCS)
10	RCSID("$NetBSD: index.S,v 1.1 2001/06/19 00:22:46 fvdl Exp $")
11#endif
12
13#ifdef STRCHR
14ENTRY(strchr)
15#else
16ENTRY(index)
17#endif
18	movq	%rdi,%rax
19	movb	%sil,%cl
20L1:
21	movb	(%rax),%dl
22	cmpb	%dl,%cl			/* found char? */
23	je 	L2
24	incq	%rax
25	testb	%dl,%dl			/* null terminator? */
26	jnz	L1
27	xorq	%rax,%rax
28L2:
29	ret
30