xref: /openbsd-src/lib/libc/arch/amd64/string/strlen.S (revision a28daedfc357b214be5c701aa8ba8adb29a7f1c2)
1/*	$OpenBSD: strlen.S,v 1.1 2004/01/28 01:44:45 mickey Exp $	*/
2/*
3 * Written by J.T. Conklin <jtc@netbsd.org>.
4 * Public domain.
5 * Adapted for NetBSD/x86_64 by Frank van der Linden <fvdl@wasabisystems.com>
6 */
7
8#include <machine/asm.h>
9
10ENTRY(strlen)
11	cld				/* set search forward */
12	xorl	%eax,%eax		/* set search for null terminator */
13	movq	$-1,%rcx		/* set search for lots of characters */
14	repne				/* search! */
15	scasb
16	notq	%rcx			/* get length by taking	complement */
17	leaq	-1(%rcx),%rax		/* and subtracting one */
18	ret
19