blob: 4f04ffc995d87bed6947c6ec6dc71c07825ea926 [file] [log] [blame]
The Android Open Source Projecta27d2ba2008-10-21 07:00:00 -07001/* $OpenBSD: strlen.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */
2/*
3 * Written by J.T. Conklin <jtc@netbsd.org>.
4 * Public domain.
5 */
6
7#include <machine/asm.h>
8
9ENTRY(strlen)
10 pushl %edi
11 movl 8(%esp),%edi /* string address */
12 cld /* set search forward */
13 xorl %eax,%eax /* set search for null terminator */
14 movl $-1,%ecx /* set search for lots of characters */
15 repne /* search! */
16 scasb
17 notl %ecx /* get length by taking complement */
18 leal -1(%ecx),%eax /* and subtracting one */
19 popl %edi
20 ret