]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Added option to disable any cpu optimizations
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Tue, 8 Jul 2014 12:02:18 +0000 (14:02 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Tue, 8 Jul 2014 12:02:25 +0000 (14:02 +0200)
lib/accelerated/x86/x86-common.c

index 148f324915130ac67ea8c0cfdfc378b4d3b3a7e5..b8b8cf21ea2022e7b1eca6080188b2885784f3f4 100644 (file)
@@ -61,16 +61,20 @@ unsigned int _gnutls_x86_cpuid_s[3];
 
 /* Our internal bit-string for cpu capabilities. Should be set
  * in GNUTLS_CPUID_OVERRIDE */
-#define INTEL_AES_NI 1
-#define INTEL_SSSE3 (1<<1)
-#define INTEL_PCLMUL (1<<2)
-#define VIA_PADLOCK (1<<10)
-#define VIA_PADLOCK_PHE (1<<11)
-#define VIA_PADLOCK_PHE_SHA512 (1<<12)
+#define EMPTY_SET 1
+#define INTEL_AES_NI (1<<1)
+#define INTEL_SSSE3 (1<<2)
+#define INTEL_PCLMUL (1<<3)
+#define VIA_PADLOCK (1<<20)
+#define VIA_PADLOCK_PHE (1<<21)
+#define VIA_PADLOCK_PHE_SHA512 (1<<22)
 
 static void capabilities_to_intel_cpuid(unsigned capabilities)
 {
        memset(_gnutls_x86_cpuid_s, 0, sizeof(_gnutls_x86_cpuid_s));
+       if (capabilities & EMPTY_SET) {
+               return;
+       }
        if (capabilities & INTEL_AES_NI) {
                _gnutls_x86_cpuid_s[1] |= bit_AES;
        }
@@ -85,6 +89,9 @@ static void capabilities_to_intel_cpuid(unsigned capabilities)
 static unsigned capabilities_to_via_edx(unsigned capabilities)
 {
        memset(_gnutls_x86_cpuid_s, 0, sizeof(_gnutls_x86_cpuid_s));
+       if (capabilities & EMPTY_SET) {
+               return 0;
+       }
        if (capabilities & VIA_PADLOCK) { /* edx */
                _gnutls_x86_cpuid_s[2] |= via_bit_PADLOCK;
        }