Artur Skawina wrote: > Linus Torvalds wrote: >> Oh, I did make a small change, but I doubt it matters. Instead of doing >> >> TEMP += E + SHA_ROL(A,5) + (fn) + (constant); \ >> B = SHA_ROR(B, 2); E = TEMP; } while (0) >> >> I now do >> >> E += TEMP + SHA_ROL(A,5) + (fn) + (constant); \ >> B = SHA_ROR(B, 2); } while (0) >> >> which is a bit more logical (the old TEMP usage was just due to a fairly >> mindless conversion). That _might_ have lower register pressure if the >> compiler is silly enough to not notice that it can do it. Maybe that >> matters. > > before: linus 0.6622 92.17 > after: linus 0.6631 92.05 > after: linus 0.6601 92.46 > after: linus 0.6624 92.14 > > IOW, no difference, just noise. Just to check, i did this: diff -urNp sha1bench-linus.org/block-sha1/sha1.c sha1bench-linus/block-sha1/sha1.c --- sha1bench-linus.org/block-sha1/sha1.c 2009-08-06 23:26:15.607321815 +0200 +++ sha1bench-linus/block-sha1/sha1.c 2009-08-06 23:41:36.858325807 +0200 @@ -103,8 +103,8 @@ void blk_SHA1_Final(unsigned char hashou #define SHA_ROUND(t, input, fn, constant, A, B, C, D, E) do { \ unsigned int TEMP = input(t); W(t) = TEMP; \ - E += TEMP + SHA_ROL(A,5) + (fn) + (constant); \ - B = SHA_ROR(B, 2); } while (0) + E += TEMP + (fn) + (constant); \ + B = SHA_ROR(B, 2); E += SHA_ROL(A,5); } while (0) #define T_0_15(t, A, B, C, D, E) SHA_ROUND(t, SHA_SRC, (((C^D)&B)^D) , 0x5a827999, A, B, C, D, E ) #define T_16_19(t, A, B, C, D, E) SHA_ROUND(t, SHA_MIX, (((C^D)&B)^D) , 0x5a827999, A, B, C, D, E ) and the result was: # TIME[s] SPEED[MB/s] rfc3174 1.47 41.51 rfc3174 1.474 41.42 linus 0.3564 171.2 linusas 0.5736 106.4 linusas2 0.3568 171.1 mozilla 1.17 52.19 mozillaas 1.382 44.17 openssl 0.2636 231.5 spelvin 0.2662 229.2 spelvina 0.2515 242.7 nettle 0.4386 139.2 Hmm. Does this make any difference for you? For me it's the best one so far (the linusas2 number clearly shows that for me the register renaming does nothing; other than that the functions should be very similar) artur -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html