diff options
author | jsing <> | 2025-06-28 12:21:46 +0000 |
---|---|---|
committer | jsing <> | 2025-06-28 12:21:46 +0000 |
commit | a0f7bb2cf4d220253a39c3453cee465964e35009 (patch) | |
tree | bc3c247b1d61d224c11370fe2f7fdfc0b7fda623 /src | |
parent | eb97ecd403152f20801799509a51fed03b7aa451 (diff) | |
download | openbsd-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.h | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/i386/crypto_cpu_caps.c | 10 |
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 | ||