summaryrefslogtreecommitdiff
path: root/sys/src/libc/sparc/memccpy.s
blob: a2ebd7d11a4208b5a0da8cbaa90fd97d399e3f34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
	TEXT	memccpy(SB), $0

MOVW	R7, 0(FP)
	MOVW	n+12(FP), R7
	SUBCC	R0,R7, R0
	BE	ret
	MOVW	s1+0(FP), R9
	MOVW	s2+4(FP), R8
	MOVBU	c+11(FP), R10
	ADD	R7,R8, R11

l1:	MOVBU	(R8), R12
	ADD	$1, R8
	MOVBU	R12, (R9)
	ADD	$1, R9
	SUBCC	R10,R12, R0
	BE	eq
	SUBCC	R8,R11, R0
	BNE	l1
	MOVW	R0, R7
	RETURN

eq:
	MOVW	R9, R7

ret:
	RETURN