[FFmpeg-devel] [PATCH 2/4] x86inc: Disable vpbroadcastq workaround in newer yasm versions

Ronald S. Bultje rsbultje at gmail.com
Mon Aug 3 01:36:51 CEST 2015


Hi,

On Sun, Aug 2, 2015 at 4:40 PM, Henrik Gramner <henrik at gramner.com> wrote:

> The bug was fixed in 1.3.0, so only perform the workaround in earlier
> versions.
> ---
>  libavutil/x86/x86inc.asm | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
> index e176715..8581551 100644
> --- a/libavutil/x86/x86inc.asm
> +++ b/libavutil/x86/x86inc.asm
> @@ -1481,13 +1481,15 @@ FMA4_INSTR fnmsubps, fnmsub132ps, fnmsub213ps,
> fnmsub231ps
>  FMA4_INSTR fnmsubsd, fnmsub132sd, fnmsub213sd, fnmsub231sd
>  FMA4_INSTR fnmsubss, fnmsub132ss, fnmsub213ss, fnmsub231ss
>
> -; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug
> -%if ARCH_X86_64 == 0
> -%macro vpbroadcastq 2
> -%if sizeof%1 == 16
> -    movddup %1, %2
> -%else
> -    vbroadcastsd %1, %2
> -%endif
> -%endmacro
> +; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug (fixed
> in 1.3.0)
> +%ifdef __YASM_VER__
> +    %if __YASM_VERSION_ID__ < 0x01030000 && ARCH_X86_64 == 0
> +        %macro vpbroadcastq 2
> +            %if sizeof%1 == 16
> +                movddup %1, %2
> +            %else
> +                vbroadcastsd %1, %2
> +            %endif
> +        %endmacro
> +    %endif
>  %endif


OK.

Ronald


More information about the ffmpeg-devel mailing list