Index: third_party/libwebp/dsp/upsampling_sse2.c |
diff --git a/third_party/libwebp/dsp/upsampling_sse2.c b/third_party/libwebp/dsp/upsampling_sse2.c |
index 8cb275a02b666e1b4fe186e1efebcdc021348b10..ba075d11e65766f565c86c8f1b8bf44767cd3ea9 100644 |
--- a/third_party/libwebp/dsp/upsampling_sse2.c |
+++ b/third_party/libwebp/dsp/upsampling_sse2.c |
@@ -11,6 +11,10 @@ |
#include "./dsp.h" |
+#if defined(__cplusplus) || defined(c_plusplus) |
+extern "C" { |
+#endif |
+ |
#if defined(WEBP_USE_SSE2) |
#include <assert.h> |
@@ -18,10 +22,6 @@ |
#include <string.h> |
#include "./yuv.h" |
-#if defined(__cplusplus) || defined(c_plusplus) |
-extern "C" { |
-#endif |
- |
#ifdef FANCY_UPSAMPLING |
// We compute (9*a + 3*b + 3*c + d + 8) / 16 as follows |
@@ -51,12 +51,12 @@ extern "C" { |
// pack and store two alterning pixel rows |
#define PACK_AND_STORE(a, b, da, db, out) do { \ |
- const __m128i ta = _mm_avg_epu8(a, da); /* (9a + 3b + 3c + d + 8) / 16 */ \ |
- const __m128i tb = _mm_avg_epu8(b, db); /* (3a + 9b + c + 3d + 8) / 16 */ \ |
- const __m128i t1 = _mm_unpacklo_epi8(ta, tb); \ |
- const __m128i t2 = _mm_unpackhi_epi8(ta, tb); \ |
- _mm_store_si128(((__m128i*)(out)) + 0, t1); \ |
- _mm_store_si128(((__m128i*)(out)) + 1, t2); \ |
+ const __m128i t_a = _mm_avg_epu8(a, da); /* (9a + 3b + 3c + d + 8) / 16 */ \ |
+ const __m128i t_b = _mm_avg_epu8(b, db); /* (3a + 9b + c + 3d + 8) / 16 */ \ |
+ const __m128i t_1 = _mm_unpacklo_epi8(t_a, t_b); \ |
+ const __m128i t_2 = _mm_unpackhi_epi8(t_a, t_b); \ |
+ _mm_store_si128(((__m128i*)(out)) + 0, t_1); \ |
+ _mm_store_si128(((__m128i*)(out)) + 1, t_2); \ |
} while (0) |
// Loads 17 pixels each from rows r1 and r2 and generates 32 pixels. |
@@ -128,7 +128,7 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ |
const uint8_t* top_u, const uint8_t* top_v, \ |
const uint8_t* cur_u, const uint8_t* cur_v, \ |
uint8_t* top_dst, uint8_t* bottom_dst, int len) { \ |
- int b; \ |
+ int block; \ |
/* 16 byte aligned array to cache reconstructed u and v */ \ |
uint8_t uv_buf[4 * 32 + 15]; \ |
uint8_t* const r_uv = (uint8_t*)((uintptr_t)(uv_buf + 15) & ~15); \ |
@@ -154,11 +154,11 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \ |
FUNC(bottom_y[0], u0, v0, bottom_dst); \ |
} \ |
\ |
- for (b = 0; b < num_blocks; ++b) { \ |
+ for (block = 0; block < num_blocks; ++block) { \ |
UPSAMPLE_32PIXELS(top_u, cur_u, r_uv + 0 * 32); \ |
UPSAMPLE_32PIXELS(top_v, cur_v, r_uv + 1 * 32); \ |
CONVERT2RGB(FUNC, XSTEP, top_y, bottom_y, r_uv, top_dst, bottom_dst, \ |
- 32 * b + 1, 32) \ |
+ 32 * block + 1, 32) \ |
top_u += 16; \ |
cur_u += 16; \ |
top_v += 16; \ |
@@ -184,26 +184,32 @@ SSE2_UPSAMPLE_FUNC(UpsampleBgraLinePairSSE2, VP8YuvToBgra, 4) |
#undef CONVERT2RGB |
#undef SSE2_UPSAMPLE_FUNC |
+#endif // FANCY_UPSAMPLING |
+ |
+#endif // WEBP_USE_SSE2 |
+ |
//------------------------------------------------------------------------------ |
extern WebPUpsampleLinePairFunc WebPUpsamplers[/* MODE_LAST */]; |
void WebPInitUpsamplersSSE2(void) { |
+#if defined(WEBP_USE_SSE2) |
WebPUpsamplers[MODE_RGB] = UpsampleRgbLinePairSSE2; |
WebPUpsamplers[MODE_RGBA] = UpsampleRgbaLinePairSSE2; |
WebPUpsamplers[MODE_BGR] = UpsampleBgrLinePairSSE2; |
WebPUpsamplers[MODE_BGRA] = UpsampleBgraLinePairSSE2; |
+#endif // WEBP_USE_SSE2 |
} |
void WebPInitPremultiplySSE2(void) { |
+#if defined(WEBP_USE_SSE2) |
WebPUpsamplers[MODE_rgbA] = UpsampleRgbaLinePairSSE2; |
WebPUpsamplers[MODE_bgrA] = UpsampleBgraLinePairSSE2; |
+#endif // WEBP_USE_SSE2 |
} |
-#endif // FANCY_UPSAMPLING |
- |
#if defined(__cplusplus) || defined(c_plusplus) |
} // extern "C" |
#endif |
-#endif // WEBP_USE_SSE2 |
+ |