md5sum: code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Wed, 7 Oct 2015 17:17:01 +0000 (19:17 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 7 Oct 2015 17:17:01 +0000 (19:17 +0200)
For CONFIG_MD5_SMALL=1:
function                                             old     new   delta
md5_process_block64                                  925     881     -44

For CONFIG_MD5_SMALL=0:
function                                             old     new   delta
md5_process_block64                                 1603    1586     -17

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
libbb/hash_md5_sha.c

index 1f63ccdeed917fcf092e3dd1185bfc9deef843f3..d08c6b2f74d26983481d9aed6dc68ef2c97b3e04 100644 (file)
@@ -137,7 +137,7 @@ static void FAST_FUNC md5_process_block64(md5_ctx_t *ctx)
 #if MD5_SMALL > 0
        /* Before we start, one word to the strange constants.
           They are defined in RFC 1321 as
-          T[i] = (int)(4294967296.0 * fabs(sin(i))), i=1..64
+          T[i] = (int)(2^32 * fabs(sin(i))), i=1..64
         */
        static const uint32_t C_array[] = {
                /* round 1 */
@@ -213,7 +213,7 @@ static void FAST_FUNC md5_process_block64(md5_ctx_t *ctx)
                case 2:
                        temp += FH(B, C, D);
                        break;
-               case 3:
+               default: /* case 3 */
                        temp += FI(B, C, D);
                }
                temp += words[(int) (*pp++)] + *pc++;
@@ -277,10 +277,6 @@ static void FAST_FUNC md5_process_block64(md5_ctx_t *ctx)
 
 #else  /* MD5_SMALL == 0 or 1 */
 
-       uint32_t A_save = A;
-       uint32_t B_save = B;
-       uint32_t C_save = C;
-       uint32_t D_save = D;
 # if MD5_SMALL == 1
        const uint32_t *pc;
        const char *pp;
@@ -425,10 +421,10 @@ static void FAST_FUNC md5_process_block64(md5_ctx_t *ctx)
 # undef OP
 # endif
        /* Add checksum to the starting values */
-       ctx->hash[0] = A_save + A;
-       ctx->hash[1] = B_save + B;
-       ctx->hash[2] = C_save + C;
-       ctx->hash[3] = D_save + D;
+       ctx->hash[0] += A;
+       ctx->hash[1] += B;
+       ctx->hash[2] += C;
+       ctx->hash[3] += D;
 #endif
 }
 #undef FF