summaryrefslogtreecommitdiffstats
path: root/media/base/yuv_row.h
diff options
context:
space:
mode:
authorfbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-15 10:24:29 +0000
committerfbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-15 10:24:29 +0000
commitbf52d7684c05e86bc77bd533a43df7f518181fb2 (patch)
treea8f1c974914a5f3e1c8bbff5abf7c9c1cf0953a2 /media/base/yuv_row.h
parentb8a91950aeff0d1bf19cbfc6840887263c59ba7a (diff)
downloadchromium_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.h5
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