]> granicus.if.org Git - xz/commit
liblzma: SHA-256: Optimize the way rotations are done.
authorLasse Collin <lasse.collin@tukaani.org>
Sun, 3 Aug 2014 18:08:12 +0000 (21:08 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sun, 3 Aug 2014 18:08:12 +0000 (21:08 +0300)
commita9477d1e0c6fd0e47e637d051e7b9e2a5d9af517
tree2775facf874762fff0d2f2fafacbbe2b70f07327
parent5a76c7c8ee9a0afbeedb1c211db9224260404347
liblzma: SHA-256: Optimize the way rotations are done.

This looks weird because the rotations become sequential,
but it helps quite a bit on both 32-bit and 64-bit x86:

  - It requires fewer instructions on two-operand
    instruction sets like x86.

  - It requires one register less which matters especially
    on 32-bit x86.

I hope this doesn't hurt other archs.

I didn't invent this idea myself, but I don't remember where
I saw it first.
src/liblzma/check/sha256.c