libbb/sha1: simplify cpuid code

function                                             old     new   delta
sha1_begin                                           107     106      -1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c
index 0b3af72..a23db51 100644
--- a/libbb/hash_md5_sha.c
+++ b/libbb/hash_md5_sha.c
@@ -1143,43 +1143,21 @@
 #endif /* NEED_SHA512 */
 
 #if ENABLE_SHA1_HWACCEL
-# if defined(__GNUC__) && defined(__i386__)
+# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
 static void cpuid(unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned *edx)
 {
-	asm (
-		"	cpuid\n"
-		: "=a"(*eax), /* Output */
-		  "=b"(*ebx),
-		  "=c"(*ecx),
-		  "=d"(*edx)
-		: "0"(*eax),  /* Input */
-		  "1"(*ebx),
-		  "2"(*ecx),
-		  "3"(*edx)
-		/* No clobbered registers */
+	asm ("cpuid"
+		: "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx)
+		: "0"(*eax),  "1"(*ebx),  "2"(*ecx),  "3"(*edx)
 	);
 }
+void FAST_FUNC sha1_process_block64_shaNI(sha1_ctx_t *ctx);
+#  if defined(__i386__)
 struct ASM_expects_76_shaNI { char t[1 - 2*(offsetof(sha1_ctx_t, hash) != 76)]; };
-void FAST_FUNC sha1_process_block64_shaNI(sha1_ctx_t *ctx);
-# endif
-# if defined(__GNUC__) && defined(__x86_64__)
-static void cpuid(unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned *edx)
-{
-	asm (
-		"cpuid\n"
-		: "=a"(*eax), /* Output */
-		  "=b"(*ebx),
-		  "=c"(*ecx),
-		  "=d"(*edx)
-		: "0"(*eax),  /* Input */
-		  "1"(*ebx),
-		  "2"(*ecx),
-		  "3"(*edx)
-		/* No clobbered registers */
-	);
-}
+#  endif
+#  if defined(__x86_64__)
 struct ASM_expects_80_shaNI { char t[1 - 2*(offsetof(sha1_ctx_t, hash) != 80)]; };
-void FAST_FUNC sha1_process_block64_shaNI(sha1_ctx_t *ctx);
+#  endif
 # endif
 #endif
 
@@ -1199,7 +1177,7 @@
 		if (!shaNI) {
 			unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;
 			cpuid(&eax, &ebx, &ecx, &edx);
-			shaNI = ((ebx >> 28) & 2) - 1;
+			shaNI = ((ebx >> 29) << 1) - 1;
 		}
 		if (shaNI > 0)
 			ctx->process_block = sha1_process_block64_shaNI;