Merge commit 'd06dfaa5cbdd20acfd2364b16c0f4ae4ddb30a65'
authorJames Almer <jamrial@gmail.com>
Tue, 31 Jan 2017 18:36:49 +0000 (15:36 -0300)
committerJames Almer <jamrial@gmail.com>
Tue, 31 Jan 2017 18:36:49 +0000 (15:36 -0300)
* commit 'd06dfaa5cbdd20acfd2364b16c0f4ae4ddb30a65':
  x86: huffyuv: Use EXTERNAL_SSSE3_FAST convenience macro where appropriate

Merged-by: James Almer <jamrial@gmail.com>
libavcodec/x86/lossless_videodsp.asm
libavcodec/x86/lossless_videodsp_init.c

index 7fcae89..443fe02 100644 (file)
@@ -160,8 +160,8 @@ cglobal add_left_pred, 3,3,7, dst, src, w, left
     psllq   m0, 56
     ADD_LEFT_LOOP 1, 1
 
-INIT_XMM sse4
-cglobal add_left_pred, 3,3,7, dst, src, w, left
+INIT_XMM ssse3
+cglobal add_left_pred_unaligned, 3,3,7, dst, src, w, left
     mova    m5, [pb_15]
     mova    m6, [pb_zzzzzzzz77777777]
     mova    m4, [pb_zzzz3333zzzzbbbb]
index 58715e2..8d58344 100644 (file)
@@ -35,8 +35,8 @@ void ff_add_median_pred_sse2(uint8_t *dst, const uint8_t *top,
 
 int  ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src,
                             intptr_t w, int left);
-int  ff_add_left_pred_sse4(uint8_t *dst, const uint8_t *src,
-                            intptr_t w, int left);
+int  ff_add_left_pred_unaligned_ssse3(uint8_t *dst, const uint8_t *src,
+                                      intptr_t w, int left);
 
 int ff_add_left_pred_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, int w, unsigned acc);
 int ff_add_left_pred_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, int w, unsigned acc);
@@ -105,12 +105,13 @@ void ff_llviddsp_init_x86(LLVidDSPContext *c)
 
     if (EXTERNAL_SSSE3(cpu_flags)) {
         c->add_left_pred = ff_add_left_pred_ssse3;
-        if (cpu_flags & AV_CPU_FLAG_SSE4) // not really SSE4, just slow on Conroe
-            c->add_left_pred = ff_add_left_pred_sse4;
-
         c->add_left_pred_int16 = ff_add_left_pred_int16_ssse3;
     }
 
+    if (EXTERNAL_SSSE3_FAST(cpu_flags)) {
+        c->add_left_pred = ff_add_left_pred_unaligned_ssse3;
+    }
+
     if (EXTERNAL_SSE4(cpu_flags)) {
         c->add_left_pred_int16 = ff_add_left_pred_int16_sse4;
     }