Commit | Line | Data |
---|---|---|
2676b89e CL |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | ||
3 | /* | |
4 | * memcmp for PowerPC32 | |
5 | * | |
6 | * Copyright (C) 1996 Paul Mackerras. | |
7 | * | |
8 | */ | |
9 | ||
10 | #include <asm/ppc_asm.h> | |
11 | #include <asm/export.h> | |
12 | ||
13 | .text | |
14 | ||
15 | _GLOBAL(memcmp) | |
16 | srawi. r7, r5, 2 /* Divide len by 4 */ | |
17 | mr r6, r3 | |
18 | beq- 3f | |
19 | mtctr r7 | |
20 | li r7, 0 | |
21 | 1: lwzx r3, r6, r7 | |
22 | lwzx r0, r4, r7 | |
23 | addi r7, r7, 4 | |
24 | cmplw cr0, r3, r0 | |
25 | bdnzt eq, 1b | |
26 | bne 5f | |
27 | 3: andi. r3, r5, 3 | |
28 | beqlr | |
29 | cmplwi cr1, r3, 2 | |
30 | blt- cr1, 4f | |
31 | lhzx r3, r6, r7 | |
32 | lhzx r0, r4, r7 | |
33 | addi r7, r7, 2 | |
34 | subf. r3, r0, r3 | |
35 | beqlr cr1 | |
36 | bnelr | |
37 | 4: lbzx r3, r6, r7 | |
38 | lbzx r0, r4, r7 | |
39 | subf. r3, r0, r3 | |
40 | blr | |
41 | 5: li r3, 1 | |
42 | bgtlr | |
43 | li r3, -1 | |
44 | blr | |
45 | EXPORT_SYMBOL(memcmp) |