diff options
author | Frank Barchard <fbarchard@google.com> | 2018-03-19 17:26:58 -0700 |
---|---|---|
committer | Frank Barchard <fbarchard@chromium.org> | 2018-03-20 01:04:30 +0000 |
commit | 9d70f13c8f66d06d07a78f3e32ea335b208ac15f (patch) | |
tree | 263ff528dad0713c966feb9c1291098744f3f957 /source/cpu_id.cc | |
parent | 83aa7512c1d2de46f1378279029d80a213dba67e (diff) | |
download | libyuv-9d70f13c8f66d06d07a78f3e32ea335b208ac15f.tar.gz |
cpuid sandbox friendlier avoiding getenv()
Move getenv to unittest.cc to allow libyuv to be
run in sandbox for x86, x64 and aarch64
Bug: libyuv:767
Test: unittests still run and respect environment variables
Change-Id: I84cb1717977828776142b51c029774b3e6b142a3
Reviewed-on: https://chromium-review.googlesource.com/969645
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'source/cpu_id.cc')
-rw-r--r-- | source/cpu_id.cc | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/source/cpu_id.cc b/source/cpu_id.cc index d7027e31..36cde933 100644 --- a/source/cpu_id.cc +++ b/source/cpu_id.cc @@ -19,10 +19,6 @@ #include <immintrin.h> // For _xgetbv() #endif -#if !defined(__native_client__) -#include <stdlib.h> // For getenv() -#endif - // For ArmCpuCaps() but unittested on all platforms #include <stdio.h> #include <string.h> @@ -195,25 +191,6 @@ LIBYUV_API SAFEBUFFERS int MipsCpuCaps(const char* cpuinfo_name, return 0; } -// Test environment variable for disabling CPU features. Any non-zero value -// to disable. Zero ignored to make it easy to set the variable on/off. -#if !defined(__native_client__) && !defined(_M_ARM) - -static LIBYUV_BOOL TestEnv(const char* name) { - const char* var = getenv(name); - if (var) { - if (var[0] != '0') { - return LIBYUV_TRUE; - } - } - return LIBYUV_FALSE; -} -#else // nacl does not support getenv(). -static LIBYUV_BOOL TestEnv(const char*) { - return LIBYUV_FALSE; -} -#endif - static SAFEBUFFERS int GetCpuFlags(void) { int cpu_info = 0; #if !defined(__pnacl__) && !defined(__CLR_VER) && \ @@ -251,69 +228,12 @@ static SAFEBUFFERS int GetCpuFlags(void) { cpu_info |= (cpu_info7[2] & 0x00000100) ? kCpuHasGFNI : 0; } } - - // TODO(fbarchard): Consider moving these to gtest - // Environment variable overrides for testing. - if (TestEnv("LIBYUV_DISABLE_X86")) { - cpu_info &= ~kCpuHasX86; - } - if (TestEnv("LIBYUV_DISABLE_SSE2")) { - cpu_info &= ~kCpuHasSSE2; - } - if (TestEnv("LIBYUV_DISABLE_SSSE3")) { - cpu_info &= ~kCpuHasSSSE3; - } - if (TestEnv("LIBYUV_DISABLE_SSE41")) { - cpu_info &= ~kCpuHasSSE41; - } - if (TestEnv("LIBYUV_DISABLE_SSE42")) { - cpu_info &= ~kCpuHasSSE42; - } - if (TestEnv("LIBYUV_DISABLE_AVX")) { - cpu_info &= ~kCpuHasAVX; - } - if (TestEnv("LIBYUV_DISABLE_AVX2")) { - cpu_info &= ~kCpuHasAVX2; - } - if (TestEnv("LIBYUV_DISABLE_ERMS")) { - cpu_info &= ~kCpuHasERMS; - } - if (TestEnv("LIBYUV_DISABLE_FMA3")) { - cpu_info &= ~kCpuHasFMA3; - } - if (TestEnv("LIBYUV_DISABLE_F16C")) { - cpu_info &= ~kCpuHasF16C; - } - if (TestEnv("LIBYUV_DISABLE_AVX512BW")) { - cpu_info &= ~kCpuHasAVX512BW; - } - if (TestEnv("LIBYUV_DISABLE_AVX512VL")) { - cpu_info &= ~kCpuHasAVX512VL; - } - if (TestEnv("LIBYUV_DISABLE_AVX512VBMI")) { - cpu_info &= ~kCpuHasAVX512VBMI; - } - if (TestEnv("LIBYUV_DISABLE_AVX512VBMI2")) { - cpu_info &= ~kCpuHasAVX512VBMI2; - } - if (TestEnv("LIBYUV_DISABLE_AVX512VBITALG")) { - cpu_info &= ~kCpuHasAVX512VBITALG; - } - if (TestEnv("LIBYUV_DISABLE_AVX512VPOPCNTDQ")) { - cpu_info &= ~kCpuHasAVX512VPOPCNTDQ; - } - if (TestEnv("LIBYUV_DISABLE_GFNI")) { - cpu_info &= ~kCpuHasGFNI; - } #endif #if defined(__mips__) && defined(__linux__) #if defined(__mips_msa) cpu_info = MipsCpuCaps("/proc/cpuinfo", " msa"); #endif cpu_info |= kCpuHasMIPS; - if (getenv("LIBYUV_DISABLE_MSA")) { - cpu_info &= ~kCpuHasMSA; - } #endif #if defined(__arm__) || defined(__aarch64__) // gcc -mfpu=neon defines __ARM_NEON__ @@ -332,13 +252,7 @@ static SAFEBUFFERS int GetCpuFlags(void) { cpu_info = ArmCpuCaps("/proc/cpuinfo"); #endif cpu_info |= kCpuHasARM; - if (TestEnv("LIBYUV_DISABLE_NEON")) { - cpu_info &= ~kCpuHasNEON; - } #endif // __arm__ - if (TestEnv("LIBYUV_DISABLE_ASM")) { - cpu_info = 0; - } cpu_info |= kCpuInitialized; return cpu_info; } |