Home | History | Annotate | Line # | Download | only in string
      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.10  uebayasi 	RCSID("$NetBSD: bcmp.S,v 1.10 2014/05/23 02:34:19 uebayasi 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  1.10  uebayasi END(bcmp)
     36