xref: /plan9-contrib/sys/src/ape/lib/ap/amd64/strchr.s (revision 272efad760864ee41cfe633b56aea9b4f5cf3ae7)
1	TEXT	strchr(SB), $0
2
3	MOVQ	RARG, DI
4	MOVB	c+8(FP), AX
5	CMPB	AX, $0
6	JEQ	l2	/**/
7
8/*
9 * char is not null
10 */
11l1:
12	MOVB	(DI), BX
13	CMPB	BX, $0
14	JEQ	ret0
15	ADDQ	$1, DI
16	CMPB	AX, BX
17	JNE	l1
18
19	MOVQ	DI, AX
20	SUBQ	$1, AX
21	RET
22
23/*
24 * char is null
25 */
26l2:
27	MOVQ	$-1, CX
28	CLD
29
30	REPN;	SCASB
31
32	MOVQ	DI, AX
33	SUBQ	$1, AX
34	RET
35
36ret0:
37	MOVQ	$0, AX
38	RET
39