summaryrefslogtreecommitdiff
path: root/libkern/strchr-386.s
blob: e437caf26a5b8ddb0cb138e7d2597cef613b1bda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
	TEXT	strchr(SB),$0
/*
 * look for null
 */
	MOVL	p+0(FP), DI
	MOVL	$-1, CX
	MOVL	$0, AX
	CLD

	REPN;	SCASB

/*
 * look for real char
 */
	MOVL	DI, CX
	MOVL	p+0(FP), DI
	SUBL	DI, CX
	MOVBLZX	c+4(FP), AX

	REPN;	SCASB

	JEQ	found
	MOVL	$0, AX
	RET

found:
	MOVL	DI, AX
	SUBL	$1, AX
	RET