x86/vf_v360: make remap{1,2}_8bit_line_avx2 work on x86_32
authorJames Almer <jamrial@gmail.com>
Fri, 6 Sep 2019 14:11:45 +0000 (11:11 -0300)
committerJames Almer <jamrial@gmail.com>
Fri, 6 Sep 2019 14:11:45 +0000 (11:11 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavfilter/vf_v360.c
libavfilter/x86/vf_v360.asm
libavfilter/x86/vf_v360_init.c

index ed00dd0..c90f16b 100644 (file)
@@ -285,7 +285,7 @@ void ff_v360_init(V360Context *s, int depth)
         break;
     }
 
-    if (ARCH_X86_64)
+    if (ARCH_X86)
         ff_v360_init_x86(s, depth);
 }
 
index c8b5aa7..f49702b 100644 (file)
 ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 ;******************************************************************************
 
-%if HAVE_AVX2_EXTERNAL && ARCH_X86_64
 
 %include "libavutil/x86/x86util.asm"
 
+%if HAVE_AVX2_EXTERNAL
+
 SECTION_RODATA
 
 pb_mask: db 0,4,8,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
@@ -62,8 +63,11 @@ cglobal remap1_8bit_line, 6, 7, 6, dst, width, src, in_linesize, u, v, x
 INIT_YMM avx2
 cglobal remap2_8bit_line, 7, 8, 8, dst, width, src, in_linesize, u, v, ker, x
     movsxdifnidn widthq, widthd
-    xor             xq, xq
     movd           xm0, in_linesized
+%if ARCH_X86_32
+DEFINE_ARGS dst, width, src, x, u, v, ker
+%endif
+    xor             xq, xq
     pcmpeqw         m7, m7
     vpbroadcastd    m0, xm0
     vpbroadcastd    m6, [pd_255]
@@ -92,6 +96,8 @@ cglobal remap2_8bit_line, 7, 8, 8, dst, width, src, in_linesize, u, v, ker, x
         jl .loop
     RET
 
+%if ARCH_X86_64
+
 INIT_YMM avx2
 cglobal remap4_8bit_line, 7, 9, 11, dst, width, src, in_linesize, u, v, ker, x, y
     movsxdifnidn widthq, widthd
@@ -140,3 +146,4 @@ cglobal remap4_8bit_line, 7, 9, 11, dst, width, src, in_linesize, u, v, ker, x,
     RET
 
 %endif
+%endif
index 5dfd0d1..8c1a10c 100644 (file)
@@ -34,7 +34,6 @@ void ff_remap4_8bit_line_avx2(uint8_t *dst, int width, const uint8_t *src, ptrdi
 
 av_cold void ff_v360_init_x86(V360Context *s, int depth)
 {
-#if ARCH_X86_64
     int cpu_flags = av_get_cpu_flags();
 
     if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == NEAREST && depth <= 8)
@@ -43,6 +42,7 @@ av_cold void ff_v360_init_x86(V360Context *s, int depth)
     if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == BILINEAR && depth <= 8)
         s->remap_line = ff_remap2_8bit_line_avx2;
 
+#if ARCH_X86_64
     if (EXTERNAL_AVX2_FAST(cpu_flags) && (s->interp == BICUBIC ||
                                           s->interp == LANCZOS) && depth <= 8)
         s->remap_line = ff_remap4_8bit_line_avx2;