Hi,

On Wed, Dec 5, 2012 at 9:53 AM, Justin Ruggles <justin.rugg...@gmail.com> wrote:
> ---
>  libavutil/x86/float_dsp.asm |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm
> index 4a1742f..dc75532 100644
> --- a/libavutil/x86/float_dsp.asm
> +++ b/libavutil/x86/float_dsp.asm
> @@ -127,6 +127,9 @@ cglobal vector_dmul_scalar, 3,3,3, dst, src, len
>  cglobal vector_dmul_scalar, 4,4,3, dst, src, mul, len
>  %endif
>  %if ARCH_X86_32
> +    ; PROLOGUE loads len from the wrong stack address because mul is an 
> 8-byte
> +    ; parameter and PROLOGUE assumes all parameters are 4-byte
> +    mov          lenq, [esp+0x18]
>      VBROADCASTSD   m0, mulm

That loads len twice. Why not:

%if ARCH_X86_32
cglobal vector_dmul_scalar, 3,4,3, dst, src, mul, len, lenaddr
mov lenq, lenaddrm
%else
cglobal vector_dmul_scalar, 4,4,3, dst, src, mul, len
%endif

which is more functionally correct?

Ronald
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to