diff options
-rw-r--r-- | src/utils/simd_32/simd_altivec.h | 3 | ||||
-rw-r--r-- | src/utils/simd_32/simd_scalar.h | 2 | ||||
-rw-r--r-- | src/utils/simd_32/simd_sse.h | 5 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/utils/simd_32/simd_altivec.h b/src/utils/simd_32/simd_altivec.h index e63b9bdcc..c3d1a76dc 100644 --- a/src/utils/simd_32/simd_altivec.h +++ b/src/utils/simd_32/simd_altivec.h @@ -9,6 +9,8 @@ #define BOTAN_SIMD_ALTIVEC_H__ #include <botan/loadstor.h> +#include <botan/cpuid.h> + #include <altivec.h> #undef vector @@ -17,6 +19,7 @@ namespace Botan { class SIMD_Altivec { public: + bool enabled() const { return CPUID::has_altivec(); } SIMD_Altivec(const u32bit B[4]) { diff --git a/src/utils/simd_32/simd_scalar.h b/src/utils/simd_32/simd_scalar.h index 38f69c294..606923289 100644 --- a/src/utils/simd_32/simd_scalar.h +++ b/src/utils/simd_32/simd_scalar.h @@ -15,6 +15,8 @@ namespace Botan { class SIMD_Scalar { public: + bool enabled() const { return true; } + SIMD_Scalar(const u32bit B[4]) { R0 = B[0]; diff --git a/src/utils/simd_32/simd_sse.h b/src/utils/simd_32/simd_sse.h index 267852554..fcfe6f203 100644 --- a/src/utils/simd_32/simd_sse.h +++ b/src/utils/simd_32/simd_sse.h @@ -8,7 +8,8 @@ #ifndef BOTAN_SIMD_SSE_H__ #define BOTAN_SIMD_SSE_H__ -#include <botan/types.h> +#include <botan/cpuid.h> + #include <emmintrin.h> namespace Botan { @@ -16,6 +17,8 @@ namespace Botan { class SIMD_SSE2 { public: + bool enabled() const { return CPUID::has_sse2(); } + SIMD_SSE2(const u32bit B[4]) { reg = _mm_loadu_si128((const __m128i*)B); |