Index: third_party/libwebp/dsp/dec_sse2.c |
diff --git a/third_party/libwebp/dsp/dec_sse2.c b/third_party/libwebp/dsp/dec_sse2.c |
index 472b68ecb8da800e4769bcb7db7304eb3154dbbf..1cac1b84397393e6001e86852ec328c12ba8bf04 100644 |
--- a/third_party/libwebp/dsp/dec_sse2.c |
+++ b/third_party/libwebp/dsp/dec_sse2.c |
@@ -12,15 +12,15 @@ |
#include "./dsp.h" |
+#if defined(__cplusplus) || defined(c_plusplus) |
+extern "C" { |
+#endif |
+ |
#if defined(WEBP_USE_SSE2) |
#include <emmintrin.h> |
#include "../dec/vp8i.h" |
-#if defined(__cplusplus) || defined(c_plusplus) |
-extern "C" { |
-#endif |
- |
//------------------------------------------------------------------------------ |
// Transforms (Paragraph 14.4) |
@@ -194,7 +194,7 @@ static void TransformSSE2(const int16_t* in, uint8_t* dst, int do_two) { |
// Add inverse transform to 'dst' and store. |
{ |
- const __m128i zero = _mm_set1_epi16(0); |
+ const __m128i zero = _mm_setzero_si128(); |
// Load the reference(s). |
__m128i dst0, dst1, dst2, dst3; |
if (do_two) { |
@@ -278,14 +278,14 @@ static void TransformSSE2(const int16_t* in, uint8_t* dst, int do_two) { |
#define GET_NOTHEV(p1, p0, q0, q1, hev_thresh, not_hev) { \ |
const __m128i zero = _mm_setzero_si128(); \ |
- const __m128i t1 = MM_ABS(p1, p0); \ |
- const __m128i t2 = MM_ABS(q1, q0); \ |
+ const __m128i t_1 = MM_ABS(p1, p0); \ |
+ const __m128i t_2 = MM_ABS(q1, q0); \ |
\ |
const __m128i h = _mm_set1_epi8(hev_thresh); \ |
- const __m128i t3 = _mm_subs_epu8(t1, h); /* abs(p1 - p0) - hev_tresh */ \ |
- const __m128i t4 = _mm_subs_epu8(t2, h); /* abs(q1 - q0) - hev_tresh */ \ |
+ const __m128i t_3 = _mm_subs_epu8(t_1, h); /* abs(p1 - p0) - hev_tresh */ \ |
+ const __m128i t_4 = _mm_subs_epu8(t_2, h); /* abs(q1 - q0) - hev_tresh */ \ |
\ |
- not_hev = _mm_or_si128(t3, t4); \ |
+ not_hev = _mm_or_si128(t_3, t_4); \ |
not_hev = _mm_cmpeq_epi8(not_hev, zero); /* not_hev <= t1 && not_hev <= t2 */\ |
} |
@@ -314,13 +314,13 @@ static void TransformSSE2(const int16_t* in, uint8_t* dst, int do_two) { |
// Updates values of 2 pixels at MB edge during complex filtering. |
// Update operations: |
-// q = q - a and p = p + a; where a = [(a_hi >> 7), (a_lo >> 7)] |
+// q = q - delta and p = p + delta; where delta = [(a_hi >> 7), (a_lo >> 7)] |
#define UPDATE_2PIXELS(pi, qi, a_lo, a_hi) { \ |
const __m128i a_lo7 = _mm_srai_epi16(a_lo, 7); \ |
const __m128i a_hi7 = _mm_srai_epi16(a_hi, 7); \ |
- const __m128i a = _mm_packs_epi16(a_lo7, a_hi7); \ |
- pi = _mm_adds_epi8(pi, a); \ |
- qi = _mm_subs_epi8(qi, a); \ |
+ const __m128i delta = _mm_packs_epi16(a_lo7, a_hi7); \ |
+ pi = _mm_adds_epi8(pi, delta); \ |
+ qi = _mm_subs_epi8(qi, delta); \ |
} |
static void NeedsFilter(const __m128i* p1, const __m128i* p0, const __m128i* q0, |
@@ -876,9 +876,15 @@ static void HFilter8iSSE2(uint8_t* u, uint8_t* v, int stride, |
Store16x4(u, v, stride, &p1, &p0, &q0, &q1); |
} |
+#endif // WEBP_USE_SSE2 |
+ |
+//------------------------------------------------------------------------------ |
+// Entry point |
+ |
extern void VP8DspInitSSE2(void); |
void VP8DspInitSSE2(void) { |
+#if defined(WEBP_USE_SSE2) |
VP8Transform = TransformSSE2; |
VP8VFilter16 = VFilter16SSE2; |
@@ -894,10 +900,9 @@ void VP8DspInitSSE2(void) { |
VP8SimpleHFilter16 = SimpleHFilter16SSE2; |
VP8SimpleVFilter16i = SimpleVFilter16iSSE2; |
VP8SimpleHFilter16i = SimpleHFilter16iSSE2; |
+#endif // WEBP_USE_SSE2 |
} |
#if defined(__cplusplus) || defined(c_plusplus) |
} // extern "C" |
#endif |
- |
-#endif // WEBP_USE_SSE2 |