Source file src/crypto/cipher/xor_ppc64x.go
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 //go:build ppc64 || ppc64le 6 7 package cipher 8 9 // xorBytes xors the bytes in a and b. The destination should have enough 10 // space, otherwise xorBytes will panic. Returns the number of bytes xor'd. 11 func xorBytes(dst, a, b []byte) int { 12 n := len(a) 13 if len(b) < n { 14 n = len(b) 15 } 16 if n == 0 { 17 return 0 18 } 19 _ = dst[n-1] 20 xorBytesVSX(&dst[0], &a[0], &b[0], n) 21 return n 22 } 23 24 func xorWords(dst, a, b []byte) { 25 xorBytes(dst, a, b) 26 } 27 28 //go:noescape 29 func xorBytesVSX(dst, a, b *byte, n int) 30