diff options
author | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-15 10:24:29 +0000 |
---|---|---|
committer | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-15 10:24:29 +0000 |
commit | bf52d7684c05e86bc77bd533a43df7f518181fb2 (patch) | |
tree | a8f1c974914a5f3e1c8bbff5abf7c9c1cf0953a2 /media/base/yuv_row.h | |
parent | b8a91950aeff0d1bf19cbfc6840887263c59ba7a (diff) | |
download | chromium_src-bf52d7684c05e86bc77bd533a43df7f518181fb2.zip chromium_src-bf52d7684c05e86bc77bd533a43df7f518181fb2.tar.gz chromium_src-bf52d7684c05e86bc77bd533a43df7f518181fb2.tar.bz2 |
MMX2 improvements on Linux 64 bit.
MMX2 to avoid EMMS
LEA to remove 2 instructions from Scale loop
shuffle to remove one instruction
sub at top of loop avoids one branch
Review URL: http://codereview.chromium.org/269088
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29107 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/yuv_row.h')
-rw-r--r-- | media/base/yuv_row.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/media/base/yuv_row.h b/media/base/yuv_row.h index 31f1788..ac5c6fd 100644 --- a/media/base/yuv_row.h +++ b/media/base/yuv_row.h @@ -63,7 +63,7 @@ void ScaleYUVToRGB32Row(const uint8* y_buf, } // extern "C" #if !defined(USE_MMX) -// Windows, Mac and Linux x86 use MMX; x64 and other CPUs do not. +// Windows, Mac and Linux use MMX #if defined(ARCH_CPU_X86) || (defined(ARCH_CPU_X86_64) && defined(OS_LINUX)) #define USE_MMX 1 #else @@ -71,7 +71,8 @@ void ScaleYUVToRGB32Row(const uint8* y_buf, #endif #endif -#if USE_MMX +// x64 uses MMX2 (SSE) so emms is not required. +#if USE_MMX && !defined(ARCH_CPU_X86_64) #if defined(_MSC_VER) #define EMMS() __asm emms #else |