// setup sets up 4 ChaCha8 blocks in b32 with the counter and seed. // Note that b32 is [16][4]uint32 not [4][16]uint32: the blocks are interlaced // the same way they would be in a 4-way SIMD implementations. func setup(seed *[4]uint64, b32 *[16][4]uint32, counter uint32) { … } func _() { … } // block_generic is the non-assembly block implementation, // for use on systems without special assembly. // Even on such systems, it is quite fast: on GOOS=386, // ChaCha8 using this code generates random values faster than PCG-DXSM. func block_generic(seed *[4]uint64, buf *[32]uint64, counter uint32) { … } // qr is the (inlinable) ChaCha8 quarter round. func qr(a, b, c, d uint32) (_a, _b, _c, _d uint32) { … }