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// Avoid IndexByte and IndexByteString on Plan 9 because it uses 6// SSE instructions on x86 machines, and those are classified as 7// floating point instructions, which are illegal in a note handler. 8 9//go:build !386 && (!amd64 || plan9) && !s390x && !arm && !arm64 && !loong64 && !ppc64 && !ppc64le && !mips && !mipsle && !mips64 && !mips64le && !riscv64 && !wasm 10 11package bytealg 12 13func IndexByte(b []byte, c byte) int { 14 for i, x := range b { 15 if x == c { 16 return i 17 } 18 } 19 return -1 20} 21 22func IndexByteString(s string, c byte) int { 23 for i := 0; i < len(s); i++ { 24 if s[i] == c { 25 return i 26 } 27 } 28 return -1 29} 30