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, |