projects/linux·blob master · refs

43 lines · 647 B

1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * String handling functions for PowerPC.
4 *
5 * Copyright (C) 1996 Paul Mackerras.
6 */
7#include <linux/export.h>
8#include <asm/ppc_asm.h>
9#include <asm/cache.h>
10
11 .text
12
13_GLOBAL(strncmp)
14 PPC_LCMPI 0,r5,0
15 beq- 2f
16 mtctr r5
17 addi r5,r3,-1
18 addi r4,r4,-1
19 .balign IFETCH_ALIGN_BYTES
201: lbzu r3,1(r5)
21 cmpwi 1,r3,0
22 lbzu r0,1(r4)
23 subf. r3,r0,r3
24 beqlr 1
25 bdnzt eq,1b
26 blr
272: li r3,0
28 blr
29EXPORT_SYMBOL(strncmp)
30
31_GLOBAL(memchr)
32 PPC_LCMPI 0,r5,0
33 beq- 2f
34 mtctr r5
35 addi r3,r3,-1
36 .balign IFETCH_ALIGN_BYTES
371: lbzu r0,1(r3)
38 cmpw 0,r0,r4
39 bdnzf 2,1b
40 beqlr
412: li r3,0
42 blr
43EXPORT_SYMBOL(memchr)