From: Lasse Collin Date: Sun, 3 Aug 2014 18:32:25 +0000 (+0300) Subject: liblzma: SHA-256: Optimize the Maj macro slightly. X-Git-Tag: v5.1.4beta~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dcffdbcc23a68abc3ac3539b30be71bc9b5af84;p=thirdparty%2Fxz.git liblzma: SHA-256: Optimize the Maj macro slightly. The Maj macro is used where multiple things are added together, so making Maj a sum of two expressions allows some extra freedom for the compiler to schedule the instructions. I learned this trick from . --- diff --git a/src/liblzma/check/sha256.c b/src/liblzma/check/sha256.c index e0e2f10b..5eede5ce 100644 --- a/src/liblzma/check/sha256.c +++ b/src/liblzma/check/sha256.c @@ -36,7 +36,7 @@ rotr_32(uint32_t num, unsigned amount) + s0(W[(i - 15) & 15])) #define Ch(x, y, z) (z ^ (x & (y ^ z))) -#define Maj(x, y, z) ((x & y) | (z & (x | y))) +#define Maj(x, y, z) ((x & (y ^ z)) + (y & z)) #define a(i) T[(0 - i) & 7] #define b(i) T[(1 - i) & 7]