1// +build amd64 2// +build !appengine 3 4/** 5 * Copyright 2014 Paul Querna 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 */ 20 21package v1 22 23func haveSSE42() bool 24func scanStringSSE(s []byte, j int) (int, byte) 25 26var sse42 = haveSSE42() 27 28func scanString(s []byte, j int) (int, byte) { 29 // XXX The following fails to compile on Go 1.2. 30 /* 31 if false && sse42 { 32 return scanStringSSE(s, j) 33 } 34 */ 35 36 for { 37 if j >= len(s) { 38 return j, 0 39 } 40 41 c := s[j] 42 j++ 43 if byteLookupTable[c]&sliceStringMask == 0 { 44 continue 45 } 46 47 return j, c 48 } 49} 50