Home | History | Annotate | Line # | Download | only in string
bcmp.S revision 1.8.22.1
      1       1.1   cgd /*
      2       1.8  salo  * 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.8.22.1  matt 	RCSID("$NetBSD: bcmp.S,v 1.8.22.1 2008/01/09 01:33:56 matt 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 
     19       1.5   jtc 	movl	20(%esp),%ecx		/* compare by words */
     20       1.1   cgd 	shrl	$2,%ecx
     21       1.1   cgd 	repe
     22       1.1   cgd 	cmpsl
     23       1.1   cgd 	jne	L1
     24       1.1   cgd 
     25       1.5   jtc 	movl	20(%esp),%ecx		/* compare remainder by bytes */
     26       1.1   cgd 	andl	$3,%ecx
     27       1.1   cgd 	repe
     28       1.1   cgd 	cmpsb
     29       1.1   cgd 	je	L2
     30       1.1   cgd 
     31       1.1   cgd L1:	incl	%eax
     32       1.1   cgd L2:	popl	%esi
     33       1.1   cgd 	popl	%edi
     34       1.1   cgd 	ret
     35