x86_64 performance patch.
[openssl.git] / crypto / md4 / md4_dgst.c
index 6446f5f5e7eb619749bd4e8b39e65ec6605f0bc7..7afb7185b68a72f201db82f33c43a1d025279d97 100644 (file)
@@ -86,21 +86,7 @@ int MD4_Init(MD4_CTX *c)
 void md4_block_host_order (MD4_CTX *c, const void *data, int num)
        {
        const MD4_LONG *X=data;
 void md4_block_host_order (MD4_CTX *c, const void *data, int num)
        {
        const MD4_LONG *X=data;
-       register unsigned long A,B,C,D;
-       /*
-        * In case you wonder why A-D are declared as long and not
-        * as MD4_LONG. Doing so results in slight performance
-        * boost on LP64 architectures. The catch is we don't
-        * really care if 32 MSBs of a 64-bit register get polluted
-        * with eventual overflows as we *save* only 32 LSBs in
-        * *either* case. Now declaring 'em long excuses the compiler
-        * from keeping 32 MSBs zeroed resulting in 13% performance
-        * improvement under SPARC Solaris7/64 and 5% under AlphaLinux.
-        * Well, to be honest it should say that this *prevents* 
-        * performance degradation.
-        *
-        *                              <appro@fy.chalmers.se>
-        */
+       register unsigned MD32_REG_T A,B,C,D;
 
        A=c->A;
        B=c->B;
 
        A=c->A;
        B=c->B;
@@ -176,25 +162,11 @@ void md4_block_host_order (MD4_CTX *c, const void *data, int num)
 void md4_block_data_order (MD4_CTX *c, const void *data_, int num)
        {
        const unsigned char *data=data_;
 void md4_block_data_order (MD4_CTX *c, const void *data_, int num)
        {
        const unsigned char *data=data_;
-       register unsigned long A,B,C,D,l;
-       /*
-        * In case you wonder why A-D are declared as long and not
-        * as MD4_LONG. Doing so results in slight performance
-        * boost on LP64 architectures. The catch is we don't
-        * really care if 32 MSBs of a 64-bit register get polluted
-        * with eventual overflows as we *save* only 32 LSBs in
-        * *either* case. Now declaring 'em long excuses the compiler
-        * from keeping 32 MSBs zeroed resulting in 13% performance
-        * improvement under SPARC Solaris7/64 and 5% under AlphaLinux.
-        * Well, to be honest it should say that this *prevents* 
-        * performance degradation.
-        *
-        *                              <appro@fy.chalmers.se>
-        */
+       register unsigned MD32_REG_T A,B,C,D,l;
 #ifndef MD32_XARRAY
        /* See comment in crypto/sha/sha_locl.h for details. */
 #ifndef MD32_XARRAY
        /* See comment in crypto/sha/sha_locl.h for details. */
-       unsigned long   XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
-                       XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
+       unsigned MD32_REG_T     XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
+                               XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
 # define X(i)  XX##i
 #else
        MD4_LONG XX[MD4_LBLOCK];
 # define X(i)  XX##i
 #else
        MD4_LONG XX[MD4_LBLOCK];