Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Unified Diff: media/base/cpu_features_x86.cc

Issue 10537082: Remove duplicate CPU detection code; use base::CPU instead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: int->bool Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/cpu_features_arm.cc ('k') | media/base/simd/convert_rgb_to_yuv_ssse3.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/cpu_features_x86.cc
diff --git a/media/base/cpu_features_x86.cc b/media/base/cpu_features_x86.cc
deleted file mode 100644
index d1c70c5f81c769c5704d882f8b70b78599f364b8..0000000000000000000000000000000000000000
--- a/media/base/cpu_features_x86.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Code in this file is taked from
-// third_party/skia/src/opts/opts_check_SSE2.cpp.
-
-// Note that this file cannot be compiled with -msse2 in gcc.
-
-#include "build/build_config.h"
-#include "media/base/cpu_features.h"
-
-namespace media {
-
-#ifdef _MSC_VER
-static inline void getcpuid(int info_type, int info[4]) {
- __asm {
- mov eax, [info_type]
- cpuid
- mov edi, [info]
- mov [edi], eax
- mov [edi+4], ebx
- mov [edi+8], ecx
- mov [edi+12], edx
- }
-}
-#else
-static inline void getcpuid(int info_type, int info[4]) {
- // We save and restore ebx, so this code can be compatible with -fPIC
-#if defined(__i386__)
- asm volatile (
- "pushl %%ebx \n\t"
- "cpuid \n\t"
- "movl %%ebx, %1 \n\t"
- "popl %%ebx \n\t"
- : "=a"(info[0]), "=r"(info[1]), "=c"(info[2]), "=d"(info[3])
- : "a"(info_type)
- );
-#else
- // We can use cpuid instruction without pushing ebx on gcc x86-64 because it
- // does not use ebx (or rbx) as a GOT register.
- asm volatile (
- "cpuid \n\t"
- : "=a"(info[0]), "=r"(info[1]), "=c"(info[2]), "=d"(info[3])
- : "a"(info_type)
- : "%rbx"
- );
-#endif
-}
-#endif
-
-bool hasMMX() {
-#if defined(ARCH_CPU_X86_64)
- // Every X86_64 processor has MMX.
- return true;
-#else
- int cpu_info[4] = { 0 };
- getcpuid(1, cpu_info);
- return (cpu_info[3] & (1<<23)) != 0;
-#endif
-}
-
-bool hasSSE() {
-#if defined(ARCH_CPU_X86_64)
- // Every X86_64 processor has SSE.
- return true;
-#else
- int cpu_info[4] = { 0 };
- getcpuid(1, cpu_info);
- return (cpu_info[3] & (1<<25)) != 0;
-#endif
-}
-
-bool hasSSE2() {
-#if defined(ARCH_CPU_X86_64)
- // All X86_64 machines have SSE2, so don't even bother checking.
- return true;
-#else
- int cpu_info[4] = { 0 };
- getcpuid(1, cpu_info);
- return (cpu_info[3] & (1<<26)) != 0;
-#endif
-}
-
-bool hasSSSE3() {
- int cpu_info[4] = { 0 };
- getcpuid(1, cpu_info);
- return (cpu_info[3] & 0x04000000) != 0 && (cpu_info[2] & 0x00000001) != 0 &&
- (cpu_info[2] & 0x00000200) != 0;
-}
-
-} // namespace media
« no previous file with comments | « media/base/cpu_features_arm.cc ('k') | media/base/simd/convert_rgb_to_yuv_ssse3.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698