xref: /inferno-os/libkern/memccpy-power.s (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth	TEXT	memccpy(SB), $0
2*37da2899SCharles.Forsyth#define	BDNZ	BC	16,0,
3*37da2899SCharles.ForsythMOVW R3, s1+0(FP)
4*37da2899SCharles.Forsyth	MOVW	n+12(FP), R7
5*37da2899SCharles.Forsyth	MOVW	s2+4(FP), R4
6*37da2899SCharles.Forsyth	MOVBZ	c+11(FP), R5
7*37da2899SCharles.Forsyth	CMP	R7, $0
8*37da2899SCharles.Forsyth	BEQ	nf
9*37da2899SCharles.Forsyth	MOVW	R7, CTR
10*37da2899SCharles.Forsyth	SUB	$1, R3
11*37da2899SCharles.Forsyth	SUB	$1, R4
12*37da2899SCharles.Forsythl1:
13*37da2899SCharles.Forsyth	MOVBZU	1(R4), R6
14*37da2899SCharles.Forsyth	CMP	R6, R5
15*37da2899SCharles.Forsyth	MOVBZU	R6, 1(R3)
16*37da2899SCharles.Forsyth	BEQ	eq
17*37da2899SCharles.Forsyth	BDNZ	l1
18*37da2899SCharles.Forsythnf:
19*37da2899SCharles.Forsyth	MOVW	$0, R3
20*37da2899SCharles.Forsyth	RETURN
21*37da2899SCharles.Forsytheq:
22*37da2899SCharles.Forsyth	ADD	$1, R3
23*37da2899SCharles.Forsyth	RETURN
24