mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
41 lines
1.0 KiB
//+build !noasm |
|
//+build !appengine |
|
|
|
// Copyright 2015, Klaus Post, see LICENSE for details. |
|
|
|
package flate |
|
|
|
import ( |
|
"github.com/klauspost/cpuid" |
|
) |
|
|
|
// crc32sse returns a hash for the first 4 bytes of the slice |
|
// len(a) must be >= 4. |
|
//go:noescape |
|
func crc32sse(a []byte) uint32 |
|
|
|
// crc32sseAll calculates hashes for each 4-byte set in a. |
|
// dst must be east len(a) - 4 in size. |
|
// The size is not checked by the assembly. |
|
//go:noescape |
|
func crc32sseAll(a []byte, dst []uint32) |
|
|
|
// matchLenSSE4 returns the number of matching bytes in a and b |
|
// up to length 'max'. Both slices must be at least 'max' |
|
// bytes in size. |
|
// |
|
// TODO: drop the "SSE4" name, since it doesn't use any SSE instructions. |
|
// |
|
//go:noescape |
|
func matchLenSSE4(a, b []byte, max int) int |
|
|
|
// histogram accumulates a histogram of b in h. |
|
// h must be at least 256 entries in length, |
|
// and must be cleared before calling this function. |
|
//go:noescape |
|
func histogram(b []byte, h []int32) |
|
|
|
// Detect SSE 4.2 feature. |
|
func init() { |
|
useSSE42 = cpuid.CPU.SSE42() |
|
}
|
|
|