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