xref: /plan9-contrib/sys/src/ape/lib/ap/386/strchr.s (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1219b2ee8SDavid 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
8219b2ee8SDavid du Colombier/*
9*7dd7cddfSDavid du Colombier * char is not null
10219b2ee8SDavid 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:
27219b2ee8SDavid du Colombier	MOVL	$-1, CX
28219b2ee8SDavid du Colombier	CLD
29219b2ee8SDavid du Colombier
30219b2ee8SDavid du Colombier	REPN;	SCASB
31219b2ee8SDavid du Colombier
32219b2ee8SDavid du Colombier	MOVL	DI, AX
33219b2ee8SDavid du Colombier	SUBL	$1, AX
34219b2ee8SDavid du Colombier	RET
35*7dd7cddfSDavid du Colombier
36*7dd7cddfSDavid du Colombierret0:
37*7dd7cddfSDavid du Colombier	MOVL	$0, AX
38*7dd7cddfSDavid du Colombier	RET
39