Commit d8b73cac authored by fbarchard@google.com's avatar fbarchard@google.com

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
parent 408e5743
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 573 Version: 574
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 573 #define LIBYUV_VERSION 574
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
...@@ -950,9 +950,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, ...@@ -950,9 +950,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
"pmaddubsw %%xmm4,%%xmm6 \n" "pmaddubsw %%xmm4,%%xmm6 \n"
"phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm1,%%xmm0 \n"
"phaddw %%xmm6,%%xmm2 \n" "phaddw %%xmm6,%%xmm2 \n"
"psrlw $0x8,%%xmm0 \n" "psraw $0x8,%%xmm0 \n"
"psrlw $0x8,%%xmm2 \n" "psraw $0x8,%%xmm2 \n"
"packuswb %%xmm2,%%xmm0 \n" "packsswb %%xmm2,%%xmm0 \n"
"paddb %%xmm5,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n"
"sub $0x10,%3 \n" "sub $0x10,%3 \n"
"movdqa %%xmm0,(%1) \n" "movdqa %%xmm0,(%1) \n"
...@@ -966,9 +966,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v, ...@@ -966,9 +966,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb, uint8* dst_u, uint8* dst_v,
"pmaddubsw %%xmm3,%%xmm6 \n" "pmaddubsw %%xmm3,%%xmm6 \n"
"phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm1,%%xmm0 \n"
"phaddw %%xmm6,%%xmm2 \n" "phaddw %%xmm6,%%xmm2 \n"
"psrlw $0x8,%%xmm0 \n" "psraw $0x8,%%xmm0 \n"
"psrlw $0x8,%%xmm2 \n" "psraw $0x8,%%xmm2 \n"
"packuswb %%xmm2,%%xmm0 \n" "packsswb %%xmm2,%%xmm0 \n"
"paddb %%xmm5,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n"
"lea 0x40(%0),%0 \n" "lea 0x40(%0),%0 \n"
"movdqa %%xmm0,(%1,%2,1) \n" "movdqa %%xmm0,(%1,%2,1) \n"
...@@ -1011,9 +1011,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u, ...@@ -1011,9 +1011,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u,
"pmaddubsw %%xmm4,%%xmm6 \n" "pmaddubsw %%xmm4,%%xmm6 \n"
"phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm1,%%xmm0 \n"
"phaddw %%xmm6,%%xmm2 \n" "phaddw %%xmm6,%%xmm2 \n"
"psrlw $0x8,%%xmm0 \n" "psraw $0x8,%%xmm0 \n"
"psrlw $0x8,%%xmm2 \n" "psraw $0x8,%%xmm2 \n"
"packuswb %%xmm2,%%xmm0 \n" "packsswb %%xmm2,%%xmm0 \n"
"paddb %%xmm5,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n"
"sub $0x10,%3 \n" "sub $0x10,%3 \n"
"movdqu %%xmm0,(%1) \n" "movdqu %%xmm0,(%1) \n"
...@@ -1027,9 +1027,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u, ...@@ -1027,9 +1027,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_u,
"pmaddubsw %%xmm3,%%xmm6 \n" "pmaddubsw %%xmm3,%%xmm6 \n"
"phaddw %%xmm1,%%xmm0 \n" "phaddw %%xmm1,%%xmm0 \n"
"phaddw %%xmm6,%%xmm2 \n" "phaddw %%xmm6,%%xmm2 \n"
"psrlw $0x8,%%xmm0 \n" "psraw $0x8,%%xmm0 \n"
"psrlw $0x8,%%xmm2 \n" "psraw $0x8,%%xmm2 \n"
"packuswb %%xmm2,%%xmm0 \n" "packsswb %%xmm2,%%xmm0 \n"
"paddb %%xmm5,%%xmm0 \n" "paddb %%xmm5,%%xmm0 \n"
"lea 0x40(%0),%0 \n" "lea 0x40(%0),%0 \n"
"movdqu %%xmm0,(%1,%2,1) \n" "movdqu %%xmm0,(%1,%2,1) \n"
......
...@@ -1271,9 +1271,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0, ...@@ -1271,9 +1271,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0,
pmaddubsw xmm3, xmm7 pmaddubsw xmm3, xmm7
phaddw xmm0, xmm1 phaddw xmm0, xmm1
phaddw xmm2, xmm3 phaddw xmm2, xmm3
psrlw xmm0, 8 psraw xmm0, 8
psrlw xmm2, 8 psraw xmm2, 8
packuswb xmm0, xmm2 packsswb xmm0, xmm2
paddb xmm0, xmm5 paddb xmm0, xmm5
sub ecx, 16 sub ecx, 16
movdqa [edx], xmm0 movdqa [edx], xmm0
...@@ -1288,9 +1288,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0, ...@@ -1288,9 +1288,9 @@ void ARGBToUV444Row_SSSE3(const uint8* src_argb0,
pmaddubsw xmm3, xmm6 pmaddubsw xmm3, xmm6
phaddw xmm0, xmm1 phaddw xmm0, xmm1
phaddw xmm2, xmm3 phaddw xmm2, xmm3
psrlw xmm0, 8 psraw xmm0, 8
psrlw xmm2, 8 psraw xmm2, 8
packuswb xmm0, xmm2 packsswb xmm0, xmm2
paddb xmm0, xmm5 paddb xmm0, xmm5
lea eax, [eax + 64] lea eax, [eax + 64]
movdqa [edx + edi], xmm0 movdqa [edx + edi], xmm0
...@@ -1329,9 +1329,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0, ...@@ -1329,9 +1329,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0,
pmaddubsw xmm3, xmm7 pmaddubsw xmm3, xmm7
phaddw xmm0, xmm1 phaddw xmm0, xmm1
phaddw xmm2, xmm3 phaddw xmm2, xmm3
psrlw xmm0, 8 psraw xmm0, 8
psrlw xmm2, 8 psraw xmm2, 8
packuswb xmm0, xmm2 packsswb xmm0, xmm2
paddb xmm0, xmm5 paddb xmm0, xmm5
sub ecx, 16 sub ecx, 16
movdqu [edx], xmm0 movdqu [edx], xmm0
...@@ -1346,9 +1346,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0, ...@@ -1346,9 +1346,9 @@ void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb0,
pmaddubsw xmm3, xmm6 pmaddubsw xmm3, xmm6
phaddw xmm0, xmm1 phaddw xmm0, xmm1
phaddw xmm2, xmm3 phaddw xmm2, xmm3
psrlw xmm0, 8 psraw xmm0, 8
psrlw xmm2, 8 psraw xmm2, 8
packuswb xmm0, xmm2 packsswb xmm0, xmm2
paddb xmm0, xmm5 paddb xmm0, xmm5
lea eax, [eax + 64] lea eax, [eax + 64]
movdqu [edx + edi], xmm0 movdqu [edx + edi], xmm0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment