xref: /plan9/sys/src/libc/mips/memchr.s (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1*3e12c5d1SDavid du Colombier	TEXT	memchr(SB), $0
2*3e12c5d1SDavid du ColombierMOVW R1, 0(FP)
3*3e12c5d1SDavid du Colombier
4*3e12c5d1SDavid du Colombier	MOVW	n+8(FP), R1
5*3e12c5d1SDavid du Colombier	MOVW	s1+0(FP), R2
6*3e12c5d1SDavid du Colombier	MOVBU	c+7(FP), R3
7*3e12c5d1SDavid du Colombier	ADDU	R1, R2, R6
8*3e12c5d1SDavid du Colombier
9*3e12c5d1SDavid du Colombier	AND	$(~1), R1, R5
10*3e12c5d1SDavid du Colombier	ADDU	R2, R5
11*3e12c5d1SDavid du Colombier	BEQ	R2, R5, lt2
12*3e12c5d1SDavid du Colombier
13*3e12c5d1SDavid du Colombierl1:
14*3e12c5d1SDavid du Colombier	MOVBU	0(R2), R4
15*3e12c5d1SDavid du Colombier	MOVBU	1(R2), R7
16*3e12c5d1SDavid du Colombier	BEQ	R3, R4, eq0
17*3e12c5d1SDavid du Colombier	ADDU	$2, R2
18*3e12c5d1SDavid du Colombier	BEQ	R3, R7, eq
19*3e12c5d1SDavid du Colombier	BNE	R2, R5, l1
20*3e12c5d1SDavid du Colombier
21*3e12c5d1SDavid du Colombierlt2:
22*3e12c5d1SDavid du Colombier	BEQ	R2, R6, zret
23*3e12c5d1SDavid du Colombier
24*3e12c5d1SDavid du Colombierl2:
25*3e12c5d1SDavid du Colombier	MOVBU	(R2), R4
26*3e12c5d1SDavid du Colombier	ADDU	$1, R2
27*3e12c5d1SDavid du Colombier	BEQ	R3, R4, eq
28*3e12c5d1SDavid du Colombier	BNE	R2, R6, l2
29*3e12c5d1SDavid du Colombierzret:
30*3e12c5d1SDavid du Colombier	MOVW	R0, R1
31*3e12c5d1SDavid du Colombier	RET
32*3e12c5d1SDavid du Colombier
33*3e12c5d1SDavid du Colombiereq0:
34*3e12c5d1SDavid du Colombier	MOVW	R2, R1
35*3e12c5d1SDavid du Colombier	RET
36*3e12c5d1SDavid du Colombier
37*3e12c5d1SDavid du Colombiereq:
38*3e12c5d1SDavid du Colombier	SUBU	$1,R2, R1
39*3e12c5d1SDavid du Colombier	RET
40