x86/vf_threshold: make threshold8 functions work on x86_32

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2017-12-04 15:04:43 -03:00
parent bfd7f07b65
commit cc2ba526d4
2 changed files with 17 additions and 12 deletions

View File

@ -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

View File

@ -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;
}
}
}