On Tue, Apr 26, 2011 at 06:28:31PM +0200, Vitor Sessak wrote:
> 
> --- a/libavcodec/x86/fft_mmx.asm
> +++ b/libavcodec/x86/fft_mmx.asm
> @@ -281,13 +293,106 @@ IF%1 mova  Z(1), m3
>  
>  %define Z(x) [r0+mmsize*x]
>  %define Z2(x) [r0+mmsize*x]
> +%define ZH(x) [r0+mmsize*x+mmsize/2]
> +
> +align 16
> +fft16_avx:
> +    vextractf128   Z(0), m0, 0
> +    vextractf128  ZH(0), m1, 0
> +    vextractf128   Z(1), m0, 1
> +    vextractf128  ZH(1), m1, 1
> +    vextractf128   Z(2), m5, 0
> +    vextractf128  ZH(2), m3, 0
> +    vextractf128   Z(3), m5, 1
> +    vextractf128  ZH(3), m3, 1
> +    ret

These newfangled AVX instructions cannot be properly assembled by older
nasm versions (at least 2.0.8) causing compilation to fail on systems
that only have nasm instead of yasm with an error message like

$ make -k V=1
nasm -f win32  -DPREFIX -I. -I"/home/diego/src/libav" -Pconfig.asm -I 
libavcodec/x86/ -M -o libavcodec/x86/fft_mmx.o libavcodec/x86/fft_mmx.asm > 
libavcodec/x86/fft_mmx.d
nasm -f win32  -DPREFIX -I. -I"/home/diego/src/libav" -Pconfig.asm -I 
libavcodec/x86/ -o libavcodec/x86/fft_mmx.o libavcodec/x86/fft_mmx.asm
libavcodec/x86/fft_mmx.asm:339: error: invalid combination of opcode and 
operands

A similar problem exists in libavcodec/x86/h264_deblock_10bit.asm.

I have no idea if this can be addressed in the assembler, so I will
send an RFC patch that modifies configure to check for a suitable
assembler.

Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to