xref: /linux/arch/powerpc/lib/string.S (revision bba2c3615bd6cfee7456d1130f2e6b01b3f4e9ba)
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)
44