summaryrefslogtreecommitdiff
path: root/third_party/libyuv/source/compare_gcc.cc
diff options
context:
space:
mode:
authorJim Bankoski <jimbankoski@google.com>2016-06-29 16:18:01 -0700
committerJames Bankoski <jimbankoski@google.com>2016-06-30 13:25:39 +0000
commitaa81375d73ee33d382e7f717c519db6159e497ee (patch)
treeb20b8b92299aff97cee21c68d519e1c5816b9386 /third_party/libyuv/source/compare_gcc.cc
parente85607410e7c3ddf50b52944972ed8a48607117b (diff)
downloadlibvpx-aa81375d73ee33d382e7f717c519db6159e497ee.tar
libvpx-aa81375d73ee33d382e7f717c519db6159e497ee.tar.gz
libvpx-aa81375d73ee33d382e7f717c519db6159e497ee.tar.bz2
libvpx-aa81375d73ee33d382e7f717c519db6159e497ee.zip
libyuv: update to 2f101fdb
Fixes color issue when scaling without breaking mingw. BUG=https://bugs.chromium.org/p/libyuv/issues/detail?id=605 BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1252 Change-Id: Ifba747feb0c6a08f2b353b820a24c6c145d440ad
Diffstat (limited to 'third_party/libyuv/source/compare_gcc.cc')
-rw-r--r--third_party/libyuv/source/compare_gcc.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/third_party/libyuv/source/compare_gcc.cc b/third_party/libyuv/source/compare_gcc.cc
index 247cb33bb..1b83edb16 100644
--- a/third_party/libyuv/source/compare_gcc.cc
+++ b/third_party/libyuv/source/compare_gcc.cc
@@ -9,6 +9,8 @@
*/
#include "libyuv/basic_types.h"
+
+#include "libyuv/compare_row.h"
#include "libyuv/row.h"
#ifdef __cplusplus
@@ -16,11 +18,13 @@ namespace libyuv {
extern "C" {
#endif
-#if !defined(LIBYUV_DISABLE_X86) && (defined(__x86_64__) || defined(__i386__))
+// This module is for GCC x86 and x64.
+#if !defined(LIBYUV_DISABLE_X86) && \
+ (defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER)))
uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
uint32 sse;
- asm volatile ( // NOLINT
+ asm volatile (
"pxor %%xmm0,%%xmm0 \n"
"pxor %%xmm5,%%xmm5 \n"
LABELALIGN
@@ -54,15 +58,10 @@ uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
"+r"(count), // %2
"=g"(sse) // %3
:: "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm5"
- ); // NOLINT
+ );
return sse;
}
-#endif // defined(__x86_64__) || defined(__i386__)
-
-#if !defined(LIBYUV_DISABLE_X86) && \
- (defined(__x86_64__) || (defined(__i386__) && !defined(__pic__)))
-#define HAS_HASHDJB2_SSE41
static uvec32 kHash16x33 = { 0x92d9e201, 0, 0, 0 }; // 33 ^ 16
static uvec32 kHashMul0 = {
0x0c3525e1, // 33 ^ 15
@@ -91,7 +90,7 @@ static uvec32 kHashMul3 = {
uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
uint32 hash;
- asm volatile ( // NOLINT
+ asm volatile (
"movd %2,%%xmm0 \n"
"pxor %%xmm7,%%xmm7 \n"
"movdqa %4,%%xmm6 \n"
@@ -140,7 +139,7 @@ uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
"m"(kHashMul3) // %8
: "memory", "cc"
, "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7"
- ); // NOLINT
+ );
return hash;
}
#endif // defined(__x86_64__) || (defined(__i386__) && !defined(__pic__)))