[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