xref: /plan9-contrib/sys/src/ape/lib/ap/spim64/memccpy.s (revision 6c6e36e1134c52b146e9d71d8c7dc193994c0c4e)
1*6c6e36e1SDavid du Colombier	TEXT	memccpy(SB), $0
2*6c6e36e1SDavid du ColombierMOVV R1, 0(FP)
3*6c6e36e1SDavid du Colombier	MOVW	n+24(FP), R1
4*6c6e36e1SDavid du Colombier	BEQ	R1, ret
5*6c6e36e1SDavid du Colombier	MOVV	s1+0(FP), R3
6*6c6e36e1SDavid du Colombier	MOVV	s2+8(FP), R2
7*6c6e36e1SDavid du Colombier	MOVBU	c+16(FP), R4	/* little endian */
8*6c6e36e1SDavid du Colombier	ADDVU	R1, R2, R5
9*6c6e36e1SDavid du Colombier
10*6c6e36e1SDavid du Colombierl1:	MOVBU	(R2), R6
11*6c6e36e1SDavid du Colombier	ADDVU	$1, R2
12*6c6e36e1SDavid du Colombier	MOVBU	R6, (R3)
13*6c6e36e1SDavid du Colombier	ADDVU	$1, R3
14*6c6e36e1SDavid du Colombier	BEQ	R4, R6, eq
15*6c6e36e1SDavid du Colombier	BNE	R2, R5, l1
16*6c6e36e1SDavid du Colombier	MOVV	$0, R1
17*6c6e36e1SDavid du Colombier	RET
18*6c6e36e1SDavid du Colombier
19*6c6e36e1SDavid du Colombiereq:	MOVV	R3, R1
20*6c6e36e1SDavid du Colombierret:	RET
21