From d8b73cacbefdf3cf397a410edba1d58296844adb Mon Sep 17 00:00:00 2001 From: "fbarchard@google.com" Date: Fri, 15 Feb 2013 07:49:15 +0000 Subject: [PATCH] fix ARGBToI444 UV code to use signed math BUG=148 TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToI444_Opt Review URL: https://webrtc-codereview.appspot.com/1105008 git-svn-id: http://libyuv.googlecode.com/svn/trunk@574 16f28f9a-4ce2-e073-06de-1de4eb20be90 --- README.chromium | 2 +- include/libyuv/version.h | 2 +- source/row_posix.cc | 24 ++++++++++++------------ source/row_win.cc | 24 ++++++++++++------------ 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README.chromium b/README.chromium index 5beb92e5d..0b4fe011a 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 573 +Version: 574 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index f5f4ad4c6..4f774034d 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 573 +#define LIBYUV_VERSION 574 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/source/row_posix.cc b/source/row_posix.cc index 0a93a7ecc..13bb4f3c1 100644 --- a/source/row_posix.cc +++ b/source/row_posix.cc @@ -950,9 +950,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, "pmaddubsw %%xmm4,%%xmm6 \n" "phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm6,%%xmm2 \n" - "psrlw $0x8,%%xmm0 \n" - "psrlw $0x8,%%xmm2 \n" - "packuswb %%xmm2,%%xmm0 \n" + "psraw $0x8,%%xmm0 \n" + "psraw $0x8,%%xmm2 \n" + "packsswb %%xmm2,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n" "sub $0x10,%3 \n" "movdqa %%xmm0,(%1) \n" @@ -966,9 +966,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, "pmaddubsw %%xmm3,%%xmm6 \n" "phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm6,%%xmm2 \n" - "psrlw $0x8,%%xmm0 \n" - "psrlw $0x8,%%xmm2 \n" - "packuswb %%xmm2,%%xmm0 \n" + "psraw $0x8,%%xmm0 \n" + "psraw $0x8,%%xmm2 \n" + "packsswb %%xmm2,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n" "lea 0x40(%0),%0 \n" "movdqa %%xmm0,(%1,%2,1) \n" @@ -1011,9 +1011,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u, "pmaddubsw %%xmm4,%%xmm6 \n" "phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm6,%%xmm2 \n" - "psrlw $0x8,%%xmm0 \n" - "psrlw $0x8,%%xmm2 \n" - "packuswb %%xmm2,%%xmm0 \n" + "psraw $0x8,%%xmm0 \n" + "psraw $0x8,%%xmm2 \n" + "packsswb %%xmm2,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n" "sub $0x10,%3 \n" "movdqu %%xmm0,(%1) \n" @@ -1027,9 +1027,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u, "pmaddubsw %%xmm3,%%xmm6 \n" "phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm6,%%xmm2 \n" - "psrlw $0x8,%%xmm0 \n" - "psrlw $0x8,%%xmm2 \n" - "packuswb %%xmm2,%%xmm0 \n" + "psraw $0x8,%%xmm0 \n" + "psraw $0x8,%%xmm2 \n" + "packsswb %%xmm2,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n" "lea 0x40(%0),%0 \n" "movdqu %%xmm0,(%1,%2,1) \n" diff --git a/source/row_win.cc b/source/row_win.cc index 642dbe452..e66279fd2 100644 --- a/source/row_win.cc +++ b/source/row_win.cc @@ -1271,9 +1271,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0, pmaddubsw xmm3, xmm7 phaddw xmm0, xmm1 phaddw xmm2, xmm3 - psrlw xmm0, 8 - psrlw xmm2, 8 - packuswb xmm0, xmm2 + psraw xmm0, 8 + psraw xmm2, 8 + packsswb xmm0, xmm2 paddb xmm0, xmm5 sub ecx, 16 movdqa [edx], xmm0 @@ -1288,9 +1288,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0, pmaddubsw xmm3, xmm6 phaddw xmm0, xmm1 phaddw xmm2, xmm3 - psrlw xmm0, 8 - psrlw xmm2, 8 - packuswb xmm0, xmm2 + psraw xmm0, 8 + psraw xmm2, 8 + packsswb xmm0, xmm2 paddb xmm0, xmm5 lea eax, [eax + 64] movdqa [edx + edi], xmm0 @@ -1329,9 +1329,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0, pmaddubsw xmm3, xmm7 phaddw xmm0, xmm1 phaddw xmm2, xmm3 - psrlw xmm0, 8 - psrlw xmm2, 8 - packuswb xmm0, xmm2 + psraw xmm0, 8 + psraw xmm2, 8 + packsswb xmm0, xmm2 paddb xmm0, xmm5 sub ecx, 16 movdqu [edx], xmm0 @@ -1346,9 +1346,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0, pmaddubsw xmm3, xmm6 phaddw xmm0, xmm1 phaddw xmm2, xmm3 - psrlw xmm0, 8 - psrlw xmm2, 8 - packuswb xmm0, xmm2 + psraw xmm0, 8 + psraw xmm2, 8 + packsswb xmm0, xmm2 paddb xmm0, xmm5 lea eax, [eax + 64] movdqu [edx + edi], xmm0