written by Kirk McKusick and Sam Leffler; add Berkeley specific header
[unix-history] / usr / src / lib / libc / vax / string / strlen.s
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of California at Berkeley. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific written prior permission. This software
* is provided ``as is'' without express or implied warranty.
*/
#if defined(SYSLIBC_SCCS) && !defined(lint)
_sccsid:.asciz "@(#)strlen.s 5.4 (Berkeley) %G%"
#endif /* SYSLIBC_SCCS and not lint */
/*
* Return the length of cp (not counting '\0').
*
* strlen(cp)
* char *cp;
*/
#include "DEFS.h"
ENTRY(strlen, 0)
movl 4(ap),r1
1:
locc $0,$65535,(r1) # look for '\0'
beql 1b
subl3 4(ap),r1,r0 # len = cp - base
ret