X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/81ceb2c35de440e701d2f4e6960001395d2b7e97..981a9e5d5e3af6c06ad8b3f821928852068227e4:/symm/chacha-x86ish-sse2.S diff --git a/symm/chacha-x86ish-sse2.S b/symm/chacha-x86ish-sse2.S index 974ec5b5..13a1848c 100644 --- a/symm/chacha-x86ish-sse2.S +++ b/symm/chacha-x86ish-sse2.S @@ -164,9 +164,9 @@ FUNC(chacha_core_x86ish_sse2) // c += d; b ^= c; b <<<= 7 paddd xmm2, xmm3 - pshufd xmm3, xmm3, SHUF(3, 0, 1, 2) + pshufd xmm3, xmm3, SHUF(2, 1, 0, 3) pxor xmm1, xmm2 - pshufd xmm2, xmm2, SHUF(2, 3, 0, 1) + pshufd xmm2, xmm2, SHUF(1, 0, 3, 2) movdqa xmm4, xmm1 pslld xmm1, 7 psrld xmm4, 25 @@ -184,7 +184,7 @@ FUNC(chacha_core_x86ish_sse2) // // The shuffles have quite high latency, so they've mostly been // pushed upwards. The remaining one can't be moved, though. - pshufd xmm1, xmm1, SHUF(1, 2, 3, 0) + pshufd xmm1, xmm1, SHUF(0, 3, 2, 1) // Apply the diagonal quarterround to each of the columns // simultaneously. @@ -215,9 +215,9 @@ FUNC(chacha_core_x86ish_sse2) // c += d; b ^= c; b <<<= 7 paddd xmm2, xmm3 - pshufd xmm3, xmm3, SHUF(1, 2, 3, 0) + pshufd xmm3, xmm3, SHUF(0, 3, 2, 1) pxor xmm1, xmm2 - pshufd xmm2, xmm2, SHUF(2, 3, 0, 1) + pshufd xmm2, xmm2, SHUF(1, 0, 3, 2) movdqa xmm4, xmm1 pslld xmm1, 7 psrld xmm4, 25 @@ -226,7 +226,7 @@ FUNC(chacha_core_x86ish_sse2) // Finally, finish off undoing the transpose, and we're done for this // doubleround. Again, most of this was done above so we don't have // to wait for the shuffles. - pshufd xmm1, xmm1, SHUF(3, 0, 1, 2) + pshufd xmm1, xmm1, SHUF(2, 1, 0, 3) // Decrement the loop counter and see if we should go round again. sub NR, 2