xref: /csrg-svn/lib/libc/tahoe/string/strncmp.s (revision 29701)
1*29701Ssam#ifdef LIBC_SCCS
2*29701Ssam	.asciz	"@(#)strncmp.s	1.1 (Berkeley/CCI) 08/01/86"
3*29701Ssam#endif LIBC_SCCS
4*29701Ssam
5*29701Ssam/*
6*29701Ssam * Compare strings (at most n bytes):  s1>s2: >0  s1==s2: 0  s1<s2: <0
7*29701Ssam *
8*29701Ssam * strncmp(s1, s2, n)
9*29701Ssam * register char *s1, *s2;
10*29701Ssam * register n;
11*29701Ssam */
12*29701Ssam#include "DEFS.h"
13*29701Ssam
14*29701SsamENTRY(strncmp, 0)
15*29701Ssam	movl	12(fp),r2
16*29701Ssam	tstl	r2		/* number of bytes to compare */
17*29701Ssam	jgtr	n_ok
18*29701Ssam	clrl	r0
19*29701Ssam	ret			/* for n <= 0 , s1 == s2 */
20*29701Ssamn_ok:
21*29701Ssam	movl	4(fp),r0
22*29701Ssam	movl	8(fp),r1
23*29701Ssam	cmps3
24*29701Ssam	jgtr	greater
25*29701Ssam	jlss	less
26*29701Ssamequal:	clrl	r0
27*29701Ssam	ret
28*29701Ssamless:	movl	$-1,r0
29*29701Ssam	ret
30*29701Ssamgreater: movl	$1,r0
31*29701Ssam	ret
32