Merge tag 'seccomp-v5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees...
[linux-2.6-microblaze.git] / arch / powerpc / lib / memcmp_32.S
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)