// xorBytes xors in bulk. It only works on architectures that support unaligned
// read/writes.
xorBytes xors in bulk. It only works on architectures that support unaligned
read/writes.
// xorBytes xors in bulk . It only works on architectures that support unaligned // read / writes .
func xorBytes(dst, a, b []byte) int {
	n := len(a)
	if len(b) < n {
		n = len(b)
	}
	w := n / wordSize
	if w > 0 {
		dw := *(*[]uintptr)(unsafe.Pointer(&dst))
		aw := *(*[]uintptr)(unsafe.Pointer(&a))
		bw := *(*[]uintptr)(unsafe.Pointer(&b))
		for i := 0; i < w; i++ {
			dw[i] = aw[i] ^ bw[i]
		}
	}
	for i := (n - n%wordSize); i < n; i++ {
		dst[i] = a[i] ^ b[i]
	}
	return n
}
func xorBytes ( dst , a , b [ ] byte ) int { n := len ( a ) if len ( b ) < n { n = len ( b ) } w := n / wordSize if w > 0 { dw := * ( * [ ] uintptr ) ( unsafe . Pointer ( & dst ) ) aw := * ( * [ ] uintptr ) ( unsafe . Pointer ( & a ) ) bw := * ( * [ ] uintptr ) ( unsafe . Pointer ( & b ) ) for i := 0 ; i < w ; i ++ { dw [ i ] = aw [ i ] ^ bw [ i ] } } for i := ( n - n % wordSize ) ; i < n ; i ++ { dst [ i ] = a [ i ] ^ b [ i ] } return n }
xorBytes xors in bulk.
xorBytes xors in bulk .