| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 return kCpuHasMIPS_DSP; | 167 return kCpuHasMIPS_DSP; |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 fclose(f); | 170 fclose(f); |
| 171 return 0; | 171 return 0; |
| 172 } | 172 } |
| 173 #endif | 173 #endif |
| 174 | 174 |
| 175 // CPU detect function for SIMD instruction sets. | 175 // CPU detect function for SIMD instruction sets. |
| 176 LIBYUV_API | 176 LIBYUV_API |
| 177 int cpu_info_ = kCpuInit; // cpu_info is not initialized yet. | 177 int cpu_info_ = 0; // cpu_info is not initialized yet. |
| 178 | 178 |
| 179 // Test environment variable for disabling CPU features. Any non-zero value | 179 // Test environment variable for disabling CPU features. Any non-zero value |
| 180 // to disable. Zero ignored to make it easy to set the variable on/off. | 180 // to disable. Zero ignored to make it easy to set the variable on/off. |
| 181 #if !defined(__native_client__) && !defined(_M_ARM) | 181 #if !defined(__native_client__) && !defined(_M_ARM) |
| 182 | 182 |
| 183 static LIBYUV_BOOL TestEnv(const char* name) { | 183 static LIBYUV_BOOL TestEnv(const char* name) { |
| 184 const char* var = getenv(name); | 184 const char* var = getenv(name); |
| 185 if (var) { | 185 if (var) { |
| 186 if (var[0] != '0') { | 186 if (var[0] != '0') { |
| 187 return LIBYUV_TRUE; | 187 return LIBYUV_TRUE; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 cpu_info = ArmCpuCaps("/proc/cpuinfo"); | 284 cpu_info = ArmCpuCaps("/proc/cpuinfo"); |
| 285 #endif | 285 #endif |
| 286 cpu_info |= kCpuHasARM; | 286 cpu_info |= kCpuHasARM; |
| 287 if (TestEnv("LIBYUV_DISABLE_NEON")) { | 287 if (TestEnv("LIBYUV_DISABLE_NEON")) { |
| 288 cpu_info &= ~kCpuHasNEON; | 288 cpu_info &= ~kCpuHasNEON; |
| 289 } | 289 } |
| 290 #endif // __arm__ | 290 #endif // __arm__ |
| 291 if (TestEnv("LIBYUV_DISABLE_ASM")) { | 291 if (TestEnv("LIBYUV_DISABLE_ASM")) { |
| 292 cpu_info = 0; | 292 cpu_info = 0; |
| 293 } | 293 } |
| 294 cpu_info |= kCpuInitialized; |
| 294 cpu_info_ = cpu_info; | 295 cpu_info_ = cpu_info; |
| 295 return cpu_info_; | 296 return cpu_info; |
| 296 } | 297 } |
| 297 | 298 |
| 298 // Note that use of this function is not thread safe. | 299 // Note that use of this function is not thread safe. |
| 299 LIBYUV_API | 300 LIBYUV_API |
| 300 void MaskCpuFlags(int enable_flags) { | 301 void MaskCpuFlags(int enable_flags) { |
| 301 cpu_info_ = InitCpuFlags() & enable_flags; | 302 cpu_info_ = InitCpuFlags() & enable_flags; |
| 302 } | 303 } |
| 303 | 304 |
| 304 #ifdef __cplusplus | 305 #ifdef __cplusplus |
| 305 } // extern "C" | 306 } // extern "C" |
| 306 } // namespace libyuv | 307 } // namespace libyuv |
| 307 #endif | 308 #endif |
| OLD | NEW |