xref: /openbsd-src/sys/lib/libkern/arch/amd64/strlen.S (revision a28daedfc357b214be5c701aa8ba8adb29a7f1c2)
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(strlen)
10	cld				/* set search forward */
11	xorl	%eax,%eax		/* set search for null terminator */
12	movq	$-1,%rcx		/* set search for lots of characters */
13	repne				/* search! */
14	scasb
15	notq	%rcx			/* get length by taking	complement */
16	leaq	-1(%rcx),%rax		/* and subtracting one */
17	ret
18