summaryrefslogtreecommitdiff
path: root/sys/lib/libkern/arch/mips/strlen.S
blob: b1262b8f7ad34de895039176f3379a3d770c4699 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*	$OpenBSD: strlen.S,v 1.5 1998/03/01 16:10:37 niklas Exp $	*/

#include "DEFS.h"


/*
 * strlen(str)
 */
LEAF(strlen)
	.set	noreorder
	addu	v1, a0, 1
1:
	lb	v0, 0(a0)		# get byte from string
	addu	a0, a0, 1		# increment pointer
	bne	v0, zero, 1b		# continue if not end
	nop
	j	ra
	 subu	v0, a0, v1		# compute length - 1 for '\0' char
END(strlen)