summaryrefslogtreecommitdiff
path: root/sys/src/libc/power/memccpy.s
blob: 4a4a34449f2b87bb53b2725319340ae8fae21332 (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