this conditional for i386 is not required with any recent GCC (probably
anything 3.x)...  in fact it's undesirable because the asm forces the use
of a variable rotation, which steals the %ecx register from many more
useful purposes in this code.

the patch below results in an 8% speedup on pentium-m, and a 15% speedup
on xeon (on 256MB of /dev/zero).

if you really want to use asm i suggest using the immediate form of
rotate:

        asm volatile("rol %2,%0" : "=r" (x) : "0" (x), "i" (n));

-dean


--- coreutils-5.0/lib/md5.h.orig        2003-11-28 15:04:30.000000000 -0800
+++ coreutils-5.0/lib/md5.h     2003-11-28 15:06:03.000000000 -0800
@@ -149,7 +149,7 @@

 /* The following is from gnupg-1.0.2's cipher/bithelp.h.  */
 /* Rotate a 32 bit integer by n bytes */
-#if defined __GNUC__ && defined __i386__
+#if 0 && defined __GNUC__ && defined __i386__
 static inline md5_uint32
 rol(md5_uint32 x, int n)
 {


_______________________________________________
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to