1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5#include "go_asm.h"
6#include "textflag.h"
7
8TEXT ·IndexByte(SB),NOSPLIT,$0-20
9	MOVL	b_base+0(FP), SI
10	MOVL	b_len+4(FP), CX
11	MOVB	c+12(FP), AL
12	MOVL	SI, DI
13	CLD; REPN; SCASB
14	JZ 3(PC)
15	MOVL	$-1, ret+16(FP)
16	RET
17	SUBL	SI, DI
18	SUBL	$1, DI
19	MOVL	DI, ret+16(FP)
20	RET
21
22TEXT ·IndexByteString(SB),NOSPLIT,$0-16
23	MOVL	s_base+0(FP), SI
24	MOVL	s_len+4(FP), CX
25	MOVB	c+8(FP), AL
26	MOVL	SI, DI
27	CLD; REPN; SCASB
28	JZ 3(PC)
29	MOVL	$-1, ret+12(FP)
30	RET
31	SUBL	SI, DI
32	SUBL	$1, DI
33	MOVL	DI, ret+12(FP)
34	RET
35