diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/g10lib.h | 34 | ||||
-rw-r--r-- | src/hwf-x86.c | 3 | ||||
-rw-r--r-- | src/hwfeatures.c | 1 |
3 files changed, 21 insertions, 17 deletions
diff --git a/src/g10lib.h b/src/g10lib.h index 9d2ece9c..7352556a 100644 --- a/src/g10lib.h +++ b/src/g10lib.h @@ -194,23 +194,23 @@ char **_gcry_strtokenize (const char *string, const char *delim); /*-- src/hwfeatures.c --*/ -/* (Do not change these values unless synced with the asm code.) */ -#define HWF_PADLOCK_RNG 1 -#define HWF_PADLOCK_AES 2 -#define HWF_PADLOCK_SHA 4 -#define HWF_PADLOCK_MMUL 8 - -#define HWF_INTEL_CPU 16 -#define HWF_INTEL_FAST_SHLD 32 -#define HWF_INTEL_BMI2 64 -#define HWF_INTEL_SSSE3 128 -#define HWF_INTEL_PCLMUL 256 -#define HWF_INTEL_AESNI 512 -#define HWF_INTEL_RDRAND 1024 -#define HWF_INTEL_AVX 2048 -#define HWF_INTEL_AVX2 4096 - -#define HWF_ARM_NEON 8192 +#define HWF_PADLOCK_RNG (1 << 0) +#define HWF_PADLOCK_AES (1 << 1) +#define HWF_PADLOCK_SHA (1 << 2) +#define HWF_PADLOCK_MMUL (1 << 3) + +#define HWF_INTEL_CPU (1 << 4) +#define HWF_INTEL_FAST_SHLD (1 << 5) +#define HWF_INTEL_BMI2 (1 << 6) +#define HWF_INTEL_SSSE3 (1 << 7) +#define HWF_INTEL_SSE4_1 (1 << 8) +#define HWF_INTEL_PCLMUL (1 << 9) +#define HWF_INTEL_AESNI (1 << 10) +#define HWF_INTEL_RDRAND (1 << 11) +#define HWF_INTEL_AVX (1 << 12) +#define HWF_INTEL_AVX2 (1 << 13) + +#define HWF_ARM_NEON (1 << 14) gpg_err_code_t _gcry_disable_hw_feature (const char *name); diff --git a/src/hwf-x86.c b/src/hwf-x86.c index fbd63315..eeacccb9 100644 --- a/src/hwf-x86.c +++ b/src/hwf-x86.c @@ -277,6 +277,9 @@ detect_x86_gnuc (void) /* Test bit 9 for SSSE3. */ if (features & 0x00000200) result |= HWF_INTEL_SSSE3; + /* Test bit 19 for SSE4.1. */ + if (features & 0x00080000) + result |= HWF_INTEL_SSE4_1; #ifdef ENABLE_AESNI_SUPPORT /* Test bit 25 for AES-NI. */ if (features & 0x02000000) diff --git a/src/hwfeatures.c b/src/hwfeatures.c index e7c55cc3..4cafae1b 100644 --- a/src/hwfeatures.c +++ b/src/hwfeatures.c @@ -50,6 +50,7 @@ static struct { HWF_INTEL_FAST_SHLD, "intel-fast-shld" }, { HWF_INTEL_BMI2, "intel-bmi2" }, { HWF_INTEL_SSSE3, "intel-ssse3" }, + { HWF_INTEL_SSE4_1, "intel-sse4.1" }, { HWF_INTEL_PCLMUL, "intel-pclmul" }, { HWF_INTEL_AESNI, "intel-aesni" }, { HWF_INTEL_RDRAND, "intel-rdrand" }, |