countlines in go asm, v1

This commit is contained in:
Barak Michener 2021-11-15 16:12:34 -08:00
commit 9384c46598
8 changed files with 250 additions and 0 deletions

14
countlines_amd64.go Normal file
View file

@ -0,0 +1,14 @@
//go:build amd64 && !gccgo && !appengine
package countlines
func CountNewlines(s []byte) uint64 {
if len(s) == 0 {
return 0
}
return countNewlinesASM(&s[0], uint64(len(s)))
}
//go:noescape
func countNewlinesASM(src *byte, len uint64) (ret uint64)