summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2025-06-28 12:21:46 +0000
committerjsing <>2025-06-28 12:21:46 +0000
commita0f7bb2cf4d220253a39c3453cee465964e35009 (patch)
treebc3c247b1d61d224c11370fe2f7fdfc0b7fda623 /src
parenteb97ecd403152f20801799509a51fed03b7aa451 (diff)
downloadopenbsd-a0f7bb2cf4d220253a39c3453cee465964e35009.tar.gz
openbsd-a0f7bb2cf4d220253a39c3453cee465964e35009.tar.bz2
openbsd-a0f7bb2cf4d220253a39c3453cee465964e35009.zip
Add CLMUL and MMX to machine dependent CPU capabilities for i386.
ok tb@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/arch/i386/crypto_arch.h4
-rw-r--r--src/lib/libcrypto/arch/i386/crypto_cpu_caps.c10
2 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/libcrypto/arch/i386/crypto_arch.h b/src/lib/libcrypto/arch/i386/crypto_arch.h
index e03e6cd765..9a377e56a9 100644
--- a/src/lib/libcrypto/arch/i386/crypto_arch.h
+++ b/src/lib/libcrypto/arch/i386/crypto_arch.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: crypto_arch.h,v 1.6 2025/06/27 17:10:45 jsing Exp $ */ 1/* $OpenBSD: crypto_arch.h,v 1.7 2025/06/28 12:21:46 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2024 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -28,6 +28,8 @@ extern uint64_t crypto_cpu_caps_i386;
28#endif 28#endif
29 29
30#define CRYPTO_CPU_CAPS_I386_AES (1ULL << 0) 30#define CRYPTO_CPU_CAPS_I386_AES (1ULL << 0)
31#define CRYPTO_CPU_CAPS_I386_CLMUL (1ULL << 1)
32#define CRYPTO_CPU_CAPS_I386_MMX (1ULL << 2)
31 33
32#ifndef OPENSSL_NO_ASM 34#ifndef OPENSSL_NO_ASM
33 35
diff --git a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c b/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c
index 01981ace55..12717a6db3 100644
--- a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c
+++ b/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: crypto_cpu_caps.c,v 1.4 2025/06/15 14:18:31 jsing Exp $ */ 1/* $OpenBSD: crypto_cpu_caps.c,v 1.5 2025/06/28 12:21:46 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2024 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -89,8 +89,10 @@ crypto_cpu_caps_init(void)
89 caps |= CPUCAP_MASK_FXSR; 89 caps |= CPUCAP_MASK_FXSR;
90 if ((edx & IA32CAP_MASK0_HT) != 0) 90 if ((edx & IA32CAP_MASK0_HT) != 0)
91 caps |= CPUCAP_MASK_HT; 91 caps |= CPUCAP_MASK_HT;
92 if ((edx & IA32CAP_MASK0_MMX) != 0) 92 if ((edx & IA32CAP_MASK0_MMX) != 0) {
93 caps |= CPUCAP_MASK_MMX; 93 caps |= CPUCAP_MASK_MMX;
94 crypto_cpu_caps_i386 |= CRYPTO_CPU_CAPS_I386_MMX;
95 }
94 if ((edx & IA32CAP_MASK0_SSE) != 0) 96 if ((edx & IA32CAP_MASK0_SSE) != 0)
95 caps |= CPUCAP_MASK_SSE; 97 caps |= CPUCAP_MASK_SSE;
96 if ((edx & IA32CAP_MASK0_SSE2) != 0) 98 if ((edx & IA32CAP_MASK0_SSE2) != 0)
@@ -100,8 +102,10 @@ crypto_cpu_caps_init(void)
100 caps |= CPUCAP_MASK_AESNI; 102 caps |= CPUCAP_MASK_AESNI;
101 crypto_cpu_caps_i386 |= CRYPTO_CPU_CAPS_I386_AES; 103 crypto_cpu_caps_i386 |= CRYPTO_CPU_CAPS_I386_AES;
102 } 104 }
103 if ((ecx & IA32CAP_MASK1_PCLMUL) != 0) 105 if ((ecx & IA32CAP_MASK1_PCLMUL) != 0) {
104 caps |= CPUCAP_MASK_PCLMUL; 106 caps |= CPUCAP_MASK_PCLMUL;
107 crypto_cpu_caps_i386 |= CRYPTO_CPU_CAPS_I386_CLMUL;
108 }
105 if ((ecx & IA32CAP_MASK1_SSSE3) != 0) 109 if ((ecx & IA32CAP_MASK1_SSSE3) != 0)
106 caps |= CPUCAP_MASK_SSSE3; 110 caps |= CPUCAP_MASK_SSSE3;
107 111