- add support for the popcnt instruction (useful for the Hamming distance, soon to...
authorVincent Rabaud <no@email>
Sun, 13 Mar 2011 22:51:33 +0000 (22:51 +0000)
committerVincent Rabaud <no@email>
Sun, 13 Mar 2011 22:51:33 +0000 (22:51 +0000)
modules/core/include/opencv2/core/core.hpp
modules/core/include/opencv2/core/core_c.h
modules/core/src/system.cpp

index 57cfcae..ba6a0d1 100644 (file)
@@ -262,6 +262,7 @@ CV_EXPORTS int64 getCPUTickCount();
   - CV_CPU_SSSE3 - SSSE 3
   - CV_CPU_SSE4_1 - SSE 4.1
   - CV_CPU_SSE4_2 - SSE 4.2
+  - CV_CPU_POPCNT - POPCOUNT
   - CV_CPU_AVX - AVX
   
   \note {Note that the function output is not static. Once you called cv::useOptimized(false),
index cfd8bf4..8e0b770 100644 (file)
@@ -1705,6 +1705,7 @@ CVAPI(double) cvGetTickFrequency( void );
 #define CV_CPU_SSSE3   5
 #define CV_CPU_SSE4_1  6
 #define CV_CPU_SSE4_2  7
+#define CV_CPU_POPCNT  8
 #define CV_CPU_AVX    10
 #define CV_HARDWARE_MAX_FEATURE 255
 
index f3f156d..bae3780 100644 (file)
@@ -139,6 +139,7 @@ struct HWFeatures
             f.have[CV_CPU_SSSE3]  = (cpuid_data[2] & (1<<9)) != 0;
             f.have[CV_CPU_SSE4_1] = (cpuid_data[2] & (1<<19)) != 0;
             f.have[CV_CPU_SSE4_2] = (cpuid_data[2] & (1<<20)) != 0;
+            f.have[CV_CPU_POPCNT] = (cpuid_data[2] & (1<<23)) != 0;
             f.have[CV_CPU_AVX]    = (cpuid_data[2] & (1<<28)) != 0;
         }