1 /* $OpenBSD: bcmp.S,v 1.2 1996/09/27 06:47:44 mickey Exp $ */
2
3 /*
4 * Written by J.T. Conklin <jtc@netbsd.org>.
5 * Public domain.
6 */
7
8 #include <machine/asm.h>
9
10 ENTRY(bcmp)
11 pushl %edi
12 pushl %esi
13 movl 12(%esp),%edi
14 movl 16(%esp),%esi
15 xorl %eax,%eax /* clear return value */
16 cld /* set compare direction forward */
17
18 movl 20(%esp),%ecx /* compare by words */
19 shrl $2,%ecx
20 repe
21 cmpsl
22 jne L1
23
24 movl 20(%esp),%ecx /* compare remainder by bytes */
25 andl $3,%ecx
26 repe
27 cmpsb
28 je L2
29
30 L1: incl %eax
31 L2: popl %esi
32 popl %edi
33 ret