Allow detection of CLMUL
diff --git a/library/aesni.c b/library/aesni.c
index 7628a03..9b41c36 100644
--- a/library/aesni.c
+++ b/library/aesni.c
@@ -37,24 +37,24 @@
 #if defined(POLARSSL_HAVE_X86_64)
 
 /*
- * AES-NI support detection routine, [AES-WP] figure 23
+ * AES-NI support detection routine
  */
-int aesni_supported( void )
+int aesni_supports( unsigned int what )
 {
-    static int supported = -1;
-    unsigned int c;
+    static int done = 0;
+    static unsigned int c = 0;
 
-    if( supported == -1 )
+    if( ! done )
     {
         asm( "movl  $1, %%eax   \n"
              "cpuid             \n"
              : "=c" (c)
              :
              : "eax", "ebx", "edx" );
-        supported = ( ( c & 0x02000000 ) != 0 );
+        done = 1;
     }
 
-    return( supported );
+    return( ( c & what ) != 0 );
 }
 
 /*