aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-12-04 15:04:43 -0300
committerJames Almer <jamrial@gmail.com>2017-12-04 15:46:09 -0300
commitcc2ba526d4140829e9b3a8d5919b8cfe449972c3 (patch)
treef787f501b858abab8173e2408efd4a9deea4bd12
parentbfd7f07b650b0414683c2c2554870e4e74d5c083 (diff)
downloadffmpeg-cc2ba526d4140829e9b3a8d5919b8cfe449972c3.tar.gz
x86/vf_threshold: make threshold8 functions work on x86_32
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavfilter/x86/vf_threshold.asm15
-rw-r--r--libavfilter/x86/vf_threshold_init.c14
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;
}
}
}