ghash-x86.pl: engage original MMX version in no-sse2 builds [from HEAD].
authorAndy Polyakov <appro@openssl.org>
Wed, 25 Jan 2012 17:56:25 +0000 (17:56 +0000)
committerAndy Polyakov <appro@openssl.org>
Wed, 25 Jan 2012 17:56:25 +0000 (17:56 +0000)
crypto/modes/asm/ghash-x86.pl
crypto/modes/gcm128.c

index 1b9adfb..6b09669 100644 (file)
@@ -331,7 +331,7 @@ if (!$x86only) {{{
 
 &static_label("rem_4bit");
 
-if (0) {{      # "May" MMX version is kept for reference...
+if (!$sse2) {{ # pure-MMX "May" version...
 
 $S=12;         # shift factor for rem_4bit
 
index 2e42e71..7d6d034 100644 (file)
@@ -723,7 +723,11 @@ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block)
 #  endif
        gcm_init_4bit(ctx->Htable,ctx->H.u);
 #  if  defined(GHASH_ASM_X86)                  /* x86 only */
+#   if defined(OPENSSL_IA32_SSE2)
+       if (OPENSSL_ia32cap_P[0]&(1<<25)) {     /* check SSE bit */
+#   else
        if (OPENSSL_ia32cap_P[0]&(1<<23)) {     /* check MMX bit */
+#   endif
                ctx->gmult = gcm_gmult_4bit_mmx;
                ctx->ghash = gcm_ghash_4bit_mmx;
        } else {