xref: /plan9/sys/src/libc/386/memchr.s (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1*3e12c5d1SDavid du Colombier	TEXT	memchr(SB),$0
2*3e12c5d1SDavid du Colombier
3*3e12c5d1SDavid du Colombier	MOVL	n+8(FP), CX
4*3e12c5d1SDavid du Colombier	CMPL	CX, $0
5*3e12c5d1SDavid du Colombier	JEQ	none
6*3e12c5d1SDavid du Colombier	MOVL	p+0(FP), DI
7*3e12c5d1SDavid du Colombier	MOVBLZX	c+4(FP), AX
8*3e12c5d1SDavid du Colombier	CLD
9*3e12c5d1SDavid du Colombier/*
10*3e12c5d1SDavid du Colombier * SCASB is memchr instruction
11*3e12c5d1SDavid du Colombier */
12*3e12c5d1SDavid du Colombier
13*3e12c5d1SDavid du Colombier	REPN;	SCASB
14*3e12c5d1SDavid du Colombier	JEQ	found
15*3e12c5d1SDavid du Colombier
16*3e12c5d1SDavid du Colombiernone:
17*3e12c5d1SDavid du Colombier	MOVL	$0, AX
18*3e12c5d1SDavid du Colombier	RET
19*3e12c5d1SDavid du Colombier
20*3e12c5d1SDavid du Colombierfound:
21*3e12c5d1SDavid du Colombier	MOVL	DI, AX
22*3e12c5d1SDavid du Colombier	SUBL	$1, AX
23*3e12c5d1SDavid du Colombier	RET
24