1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/* $NetBSD: memcmp.S,v 1.3 1998/04/03 22:58:09 matthias Exp $ */
/*
* Written by Matthias Pfaller, 1996
* Public domain.
*/
#include <machine/asm.h>
#if defined(LIBC_SCCS)
RCSID("$NetBSD: memcmp.S,v 1.3 1998/04/03 22:58:09 matthias Exp $")
#endif
/*
* int
* memcmp (const void *b1, const void *b2, size_t len)
*/
KENTRY(memcmp, 12)
enter [],0
movd B_ARG2,r0
movd B_ARG0,r1
movd B_ARG1,r2
lshd -2,r0
cmpsd
movqd 4,r0
bne 1f
movqd 3,r0
andd B_ARG2,r0
1: cmpsb
bne 3f
2: exit []
ret ARGS
3: movzbd 0(r1),r0
movzbd 0(r2),r1
subd r1,r0
exit []
ret ARGS
|