[FFmpeg-cvslog] x86/vf_threshold: make threshold8 functions work on x86_32

James Almer git at videolan.org
Mon Dec 4 20:47:00 EET 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Mon Dec  4 15:04:43 2017 -0300| [cc2ba526d4140829e9b3a8d5919b8cfe449972c3] | committer: James Almer

x86/vf_threshold: make threshold8 functions work on x86_32

Signed-off-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cc2ba526d4140829e9b3a8d5919b8cfe449972c3
---

 libavfilter/x86/vf_threshold.asm    | 15 +++++++++++----
 libavfilter/x86/vf_threshold_init.c | 14 ++++++--------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/libavfilter/x86/vf_threshold.asm b/libavfilter/x86/vf_threshold.asm
index 5e595fa13f..56a6c242d8 100644
--- a/libavfilter/x86/vf_threshold.asm
+++ b/libavfilter/x86/vf_threshold.asm
@@ -22,8 +22,6 @@
 
 %include "libavutil/x86/x86util.asm"
 
-%if ARCH_X86_64
-
 SECTION_RODATA
 
 pb_128: times 16 db 128
@@ -31,9 +29,20 @@ pb_128: times 16 db 128
 SECTION .text
 
 %macro THRESHOLD_8 0
+%if ARCH_X86_64
 cglobal threshold8, 10, 13, 5, in, threshold, min, max, out, ilinesize, tlinesize, flinesize, slinesize, olinesize, w, h, x
     mov             wd, dword wm
     mov             hd, dword hm
+%else
+cglobal threshold8, 5, 7, 5, in, threshold, min, max, out, w, x
+    mov             wd, r10m
+%define     ilinesizeq  r5mp
+%define     tlinesizeq  r6mp
+%define     flinesizeq  r7mp
+%define     slinesizeq  r8mp
+%define     olinesizeq  r9mp
+%define             hd  r11mp
+%endif
     VBROADCASTI128  m4, [pb_128]
     add            inq, wq
     add     thresholdq, wq
@@ -74,5 +83,3 @@ THRESHOLD_8
 INIT_YMM avx2
 THRESHOLD_8
 %endif
-
-%endif
diff --git a/libavfilter/x86/vf_threshold_init.c b/libavfilter/x86/vf_threshold_init.c
index f448cb4b39..db0559533d 100644
--- a/libavfilter/x86/vf_threshold_init.c
+++ b/libavfilter/x86/vf_threshold_init.c
@@ -42,14 +42,12 @@ av_cold void ff_threshold_init_x86(ThresholdContext *s)
 {
     int cpu_flags = av_get_cpu_flags();
 
-    if (ARCH_X86_64) {
-        if (s->depth == 8) {
-            if (EXTERNAL_SSE4(cpu_flags)) {
-                s->threshold = ff_threshold8_sse4;
-            }
-            if (EXTERNAL_AVX2_FAST(cpu_flags)) {
-                s->threshold = ff_threshold8_avx2;
-            }
+    if (s->depth == 8) {
+        if (EXTERNAL_SSE4(cpu_flags)) {
+            s->threshold = ff_threshold8_sse4;
+        }
+        if (EXTERNAL_AVX2_FAST(cpu_flags)) {
+            s->threshold = ff_threshold8_avx2;
         }
     }
 }



More information about the ffmpeg-cvslog mailing list