Super User's BSD Cross Reference: /OpenBSD/sys/lib/libkern/arch/i386/bcmp.S

1 /* $OpenBSD: bcmp.S,v 1.3 2014年11月29日 18:51:23 tedu 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
17 movl 20(%esp),%ecx /* compare by words */
18 shrl $2,%ecx
19 repe
20 cmpsl
21 jne L1
22
23 movl 20(%esp),%ecx /* compare remainder by bytes */
24 andl $3,%ecx
25 repe
26 cmpsb
27 je L2
28
29 L1: incl %eax
30 L2: popl %esi
31 popl %edi
32 ret
33 

AltStyle によって変換されたページ (->オリジナル) /