xref: /plan9/sys/src/libc/386/strchr.s (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
13e12c5d1SDavid du Colombier	TEXT	strchr(SB), $0
2*7dd7cddfSDavid du Colombier
3*7dd7cddfSDavid du Colombier	MOVL	s+0(FP), DI
4*7dd7cddfSDavid du Colombier	MOVB	c+4(FP), AX
5*7dd7cddfSDavid du Colombier	CMPB	AX, $0
6*7dd7cddfSDavid du Colombier	JEQ	l2	/**/
7*7dd7cddfSDavid du Colombier
83e12c5d1SDavid du Colombier/*
9*7dd7cddfSDavid du Colombier * char is not null
103e12c5d1SDavid du Colombier */
11*7dd7cddfSDavid du Colombierl1:
12*7dd7cddfSDavid du Colombier	MOVB	(DI), BX
13*7dd7cddfSDavid du Colombier	CMPB	BX, $0
14*7dd7cddfSDavid du Colombier	JEQ	ret0
15*7dd7cddfSDavid du Colombier	ADDL	$1, DI
16*7dd7cddfSDavid du Colombier	CMPB	AX, BX
17*7dd7cddfSDavid du Colombier	JNE	l1
18*7dd7cddfSDavid du Colombier
19*7dd7cddfSDavid du Colombier	MOVL	DI, AX
20*7dd7cddfSDavid du Colombier	SUBL	$1, AX
21*7dd7cddfSDavid du Colombier	RET
22*7dd7cddfSDavid du Colombier
23*7dd7cddfSDavid du Colombier/*
24*7dd7cddfSDavid du Colombier * char is null
25*7dd7cddfSDavid du Colombier */
26*7dd7cddfSDavid du Colombierl2:
273e12c5d1SDavid du Colombier	MOVL	$-1, CX
283e12c5d1SDavid du Colombier	CLD
293e12c5d1SDavid du Colombier
303e12c5d1SDavid du Colombier	REPN;	SCASB
313e12c5d1SDavid du Colombier
323e12c5d1SDavid du Colombier	MOVL	DI, AX
333e12c5d1SDavid du Colombier	SUBL	$1, AX
343e12c5d1SDavid du Colombier	RET
35*7dd7cddfSDavid du Colombier
36*7dd7cddfSDavid du Colombierret0:
37*7dd7cddfSDavid du Colombier	MOVL	$0, AX
38*7dd7cddfSDavid du Colombier	RET
39