summaryrefslogtreecommitdiff
path: root/libkern/memccpy-power.s
blob: 120df6ed20a262b5d86a46f5970a0592a92f380f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	TEXT	memccpy(SB), $0
#define	BDNZ	BC	16,0,
MOVW R3, s1+0(FP)
	MOVW	n+12(FP), R7
	MOVW	s2+4(FP), R4
	MOVBZ	c+11(FP), R5
	CMP	R7, $0
	BEQ	nf
	MOVW	R7, CTR
	SUB	$1, R3
	SUB	$1, R4
l1:
	MOVBZU	1(R4), R6
	CMP	R6, R5
	MOVBZU	R6, 1(R3)
	BEQ	eq
	BDNZ	l1
nf:
	MOVW	$0, R3
	RETURN
eq:
	ADD	$1, R3
	RETURN