/* $OpenBSD: strlen.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> ENTRY(strlen) pushl %edi movl 8(%esp),%edi /* string address */ cld /* set search forward */ xorl %eax,%eax /* set search for null terminator */ movl $-1,%ecx /* set search for lots of characters */ repne /* search! */ scasb notl %ecx /* get length by taking complement */ leal -1(%ecx),%eax /* and subtracting one */ popl %edi ret