From cc2ba526d4140829e9b3a8d5919b8cfe449972c3 Mon Sep 17 00:00:00 2001 From: James Almer Date: Mon, 4 Dec 2017 15:04:43 -0300 Subject: [PATCH] x86/vf_threshold: make threshold8 functions work on x86_32 Signed-off-by: James Almer --- 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; } } }