diff --git a/crypto/modes/gcm128.c b/crypto/modes/gcm128.c index 1287bce7735dec159e395433e2f847d6a2421a10..cdb6c847a96516324497640fcef4440ecd7f7d4b 100644 --- a/crypto/modes/gcm128.c +++ b/crypto/modes/gcm128.c @@ -719,12 +719,14 @@ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block) gcm_init_8bit(ctx->Htable,ctx->H.u); #elif TABLE_BITS==4 # if defined(GHASH_ASM_IAX) /* both x86 and x86_64 */ +# if !defined(GHASH_ASM_X86) || defined(OPENSSL_IA32_SSE2) if (OPENSSL_ia32cap_P[1]&(1<<1)) { gcm_init_clmul(ctx->Htable,ctx->H.u); ctx->gmult = gcm_gmult_clmul; ctx->ghash = gcm_ghash_clmul; return; } +# endif gcm_init_4bit(ctx->Htable,ctx->H.u); # if defined(GHASH_ASM_X86) /* x86 only */ if (OPENSSL_ia32cap_P[0]&(1<<23)) {