mirror of
https://github.com/minio/minio.git
synced 2025-11-11 14:30:17 -05:00
Updated version of klauspost/reedsolomon with NEON support for ARM (#4865)
This commit is contained in:
20
vendor/github.com/klauspost/reedsolomon/galois_amd64.go
generated
vendored
20
vendor/github.com/klauspost/reedsolomon/galois_amd64.go
generated
vendored
@@ -17,7 +17,10 @@ func galMulAVX2Xor(low, high, in, out []byte)
|
||||
//go:noescape
|
||||
func galMulAVX2(low, high, in, out []byte)
|
||||
|
||||
// This is what the assembler rountes does in blocks of 16 bytes:
|
||||
//go:noescape
|
||||
func sSE2XorSlice(in, out []byte)
|
||||
|
||||
// This is what the assembler routines do in blocks of 16 bytes:
|
||||
/*
|
||||
func galMulSSSE3(low, high, in, out []byte) {
|
||||
for n, input := range in {
|
||||
@@ -71,3 +74,18 @@ func galMulSliceXor(c byte, in, out []byte, ssse3, avx2 bool) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// slice galois add
|
||||
func sliceXor(in, out []byte, sse2 bool) {
|
||||
var done int
|
||||
if sse2 {
|
||||
sSE2XorSlice(in, out)
|
||||
done = (len(in) >> 4) << 4
|
||||
}
|
||||
remain := len(in) - done
|
||||
if remain > 0 {
|
||||
for i := done; i < len(in); i++ {
|
||||
out[i] ^= in[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user