1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Ralph Campbell. 7 * 8 * %sccs.include.redist.c% 9 */ 10 11#include <machine/machAsmDefs.h> 12 13#if defined(LIBC_SCCS) && !defined(lint) 14 ASMSTR("@(#)strlen.s 8.1 (Berkeley) 06/04/93") 15#endif /* LIBC_SCCS and not lint */ 16 17LEAF(strlen) 18 addu v1, a0, 1 191: 20 lb v0, 0(a0) # get byte from string 21 addu a0, a0, 1 # increment pointer 22 bne v0, zero, 1b # continue if not end 23 subu v0, a0, v1 # compute length - 1 for '\0' char 24 j ra 25END(strlen) 26