| Index: source/row_win.cc
|
| diff --git a/source/row_win.cc b/source/row_win.cc
|
| index fbd766814ae7f40dcdd2d812258ba2870e6344d3..f80c17a2e48ebd04225fcc2f0346e502e28f8976 100644
|
| --- a/source/row_win.cc
|
| +++ b/source/row_win.cc
|
| @@ -2354,48 +2354,6 @@ void UYVYToARGBRow_AVX2(const uint8* src_uyvy,
|
| }
|
| }
|
|
|
| -
|
| -#ifdef HAS_I422TOBGRAROW_AVX2
|
| -// 16 pixels
|
| -// 8 UV values upsampled to 16 UV, mixed with 16 Y producing 16 BGRA (64 bytes).
|
| -// TODO(fbarchard): Use macros to reduce duplicate code. See SSSE3.
|
| -__declspec(naked)
|
| -void I422ToBGRARow_AVX2(const uint8* y_buf,
|
| - const uint8* u_buf,
|
| - const uint8* v_buf,
|
| - uint8* dst_argb,
|
| - const struct YuvConstants* yuvconstants,
|
| - int width) {
|
| - __asm {
|
| - push esi
|
| - push edi
|
| - push ebx
|
| - mov eax, [esp + 12 + 4] // Y
|
| - mov esi, [esp + 12 + 8] // U
|
| - mov edi, [esp + 12 + 12] // V
|
| - mov edx, [esp + 12 + 16] // abgr
|
| - mov ebx, [esp + 12 + 20] // yuvconstants
|
| - mov ecx, [esp + 12 + 24] // width
|
| - sub edi, esi
|
| - vpcmpeqb ymm5, ymm5, ymm5 // generate 0xffffffffffffffff for alpha
|
| -
|
| - convertloop:
|
| - READYUV422_AVX2
|
| - YUVTORGB_AVX2(ebx)
|
| - STOREBGRA_AVX2
|
| -
|
| - sub ecx, 16
|
| - jg convertloop
|
| -
|
| - pop ebx
|
| - pop edi
|
| - pop esi
|
| - vzeroupper
|
| - ret
|
| - }
|
| -}
|
| -#endif // HAS_I422TOBGRAROW_AVX2
|
| -
|
| #ifdef HAS_I422TORGBAROW_AVX2
|
| // 16 pixels
|
| // 8 UV values upsampled to 16 UV, mixed with 16 Y producing 16 RGBA (64 bytes).
|
| @@ -2749,44 +2707,6 @@ void I422ToRGB24Row_SSSE3(const uint8* y_buf,
|
| }
|
| }
|
|
|
| -// 8 pixels.
|
| -// 4 UV values upsampled to 8 UV, mixed with 8 Y producing 8 RAW (24 bytes).
|
| -__declspec(naked)
|
| -void I422ToRAWRow_SSSE3(const uint8* y_buf,
|
| - const uint8* u_buf,
|
| - const uint8* v_buf,
|
| - uint8* dst_raw,
|
| - const struct YuvConstants* yuvconstants,
|
| - int width) {
|
| - __asm {
|
| - push esi
|
| - push edi
|
| - push ebx
|
| - mov eax, [esp + 12 + 4] // Y
|
| - mov esi, [esp + 12 + 8] // U
|
| - mov edi, [esp + 12 + 12] // V
|
| - mov edx, [esp + 12 + 16] // argb
|
| - mov ebx, [esp + 12 + 20] // yuvconstants
|
| - mov ecx, [esp + 12 + 24] // width
|
| - sub edi, esi
|
| - movdqa xmm5, xmmword ptr kShuffleMaskARGBToRAW_0
|
| - movdqa xmm6, xmmword ptr kShuffleMaskARGBToRAW
|
| -
|
| - convertloop:
|
| - READYUV422
|
| - YUVTORGB(ebx)
|
| - STORERAW
|
| -
|
| - sub ecx, 8
|
| - jg convertloop
|
| -
|
| - pop ebx
|
| - pop edi
|
| - pop esi
|
| - ret
|
| - }
|
| -}
|
| -
|
| // 8 pixels
|
| // 4 UV values upsampled to 8 UV, mixed with 8 Y producing 8 RGB565 (16 bytes).
|
| __declspec(naked)
|
| @@ -3066,75 +2986,6 @@ void UYVYToARGBRow_SSSE3(const uint8* src_uyvy,
|
| }
|
|
|
| __declspec(naked)
|
| -void I422ToBGRARow_SSSE3(const uint8* y_buf,
|
| - const uint8* u_buf,
|
| - const uint8* v_buf,
|
| - uint8* dst_bgra,
|
| - const struct YuvConstants* yuvconstants,
|
| - int width) {
|
| - __asm {
|
| - push esi
|
| - push edi
|
| - push ebx
|
| - mov eax, [esp + 12 + 4] // Y
|
| - mov esi, [esp + 12 + 8] // U
|
| - mov edi, [esp + 12 + 12] // V
|
| - mov edx, [esp + 12 + 16] // argb
|
| - mov ebx, [esp + 12 + 20] // yuvconstants
|
| - mov ecx, [esp + 12 + 24] // width
|
| - sub edi, esi
|
| -
|
| - convertloop:
|
| - READYUV422
|
| - YUVTORGB(ebx)
|
| - STOREBGRA
|
| -
|
| - sub ecx, 8
|
| - jg convertloop
|
| -
|
| - pop ebx
|
| - pop edi
|
| - pop esi
|
| - ret
|
| - }
|
| -}
|
| -
|
| -__declspec(naked)
|
| -void I422ToABGRRow_SSSE3(const uint8* y_buf,
|
| - const uint8* u_buf,
|
| - const uint8* v_buf,
|
| - uint8* dst_abgr,
|
| - const struct YuvConstants* yuvconstants,
|
| - int width) {
|
| - __asm {
|
| - push esi
|
| - push edi
|
| - push ebx
|
| - mov eax, [esp + 12 + 4] // Y
|
| - mov esi, [esp + 12 + 8] // U
|
| - mov edi, [esp + 12 + 12] // V
|
| - mov edx, [esp + 12 + 16] // argb
|
| - mov ebx, [esp + 12 + 20] // yuvconstants
|
| - mov ecx, [esp + 12 + 24] // width
|
| - sub edi, esi
|
| - pcmpeqb xmm5, xmm5 // generate 0xffffffff for alpha
|
| -
|
| - convertloop:
|
| - READYUV422
|
| - YUVTORGB(ebx)
|
| - STOREABGR
|
| -
|
| - sub ecx, 8
|
| - jg convertloop
|
| -
|
| - pop ebx
|
| - pop edi
|
| - pop esi
|
| - ret
|
| - }
|
| -}
|
| -
|
| -__declspec(naked)
|
| void I422ToRGBARow_SSSE3(const uint8* y_buf,
|
| const uint8* u_buf,
|
| const uint8* v_buf,
|
|
|