Home | History | Annotate | Line # | Download | only in string
bcmp.S revision 1.6
      1  1.1  cgd /*
      2  1.6  jtc  * Written by J.T. Conklin <jtc (at) netbsd.org>.
      3  1.6  jtc  * Public domain.
      4  1.1  cgd  */
      5  1.1  cgd 
      6  1.4  jtc #include <machine/asm.h>
      7  1.4  jtc 
      8  1.2  jtc #if defined(LIBC_SCCS)
      9  1.6  jtc 	RCSID("$Id: bcmp.S,v 1.6 1995/04/28 22:53:59 jtc Exp $")
     10  1.2  jtc #endif
     11  1.1  cgd 
     12  1.1  cgd ENTRY(bcmp)
     13  1.1  cgd 	pushl	%edi
     14  1.1  cgd 	pushl	%esi
     15  1.1  cgd 	movl	12(%esp),%edi
     16  1.1  cgd 	movl	16(%esp),%esi
     17  1.1  cgd 	xorl	%eax,%eax		/* clear return value */
     18  1.1  cgd 	cld				/* set compare direction forward */
     19  1.1  cgd 
     20  1.5  jtc 	movl	20(%esp),%ecx		/* compare by words */
     21  1.1  cgd 	shrl	$2,%ecx
     22  1.1  cgd 	repe
     23  1.1  cgd 	cmpsl
     24  1.1  cgd 	jne	L1
     25  1.1  cgd 
     26  1.5  jtc 	movl	20(%esp),%ecx		/* compare remainder by bytes */
     27  1.1  cgd 	andl	$3,%ecx
     28  1.1  cgd 	repe
     29  1.1  cgd 	cmpsb
     30  1.1  cgd 	je	L2
     31  1.1  cgd 
     32  1.1  cgd L1:	incl	%eax
     33  1.1  cgd L2:	popl	%esi
     34  1.1  cgd 	popl	%edi
     35  1.1  cgd 	ret
     36