// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package sha3

import (
	
	
	

	
)

// xorIn xors the bytes in buf into the state.
func xorIn( *state,  []byte) {
	if cpu.IsBigEndian {
		for  := 0; len() >= 8; ++ {
			 := binary.LittleEndian.Uint64()
			.a[] ^= 
			 = [8:]
		}
	} else {
		 := (*[25 * 64 / 8]byte)(unsafe.Pointer(&.a))
		subtle.XORBytes([:], [:], )
	}
}

// copyOut copies uint64s to a byte buffer.
func copyOut( *state,  []byte) {
	if cpu.IsBigEndian {
		for  := 0; len() >= 8; ++ {
			binary.LittleEndian.PutUint64(, .a[])
			 = [8:]
		}
	} else {
		 := (*[25 * 64 / 8]byte)(unsafe.Pointer(&.a))
		copy(, [:])
	}
}