[FFmpeg-devel] [PATCH] use 'l' asm suffix to make icc happy

Måns Rullgård mans
Sat Dec 15 22:56:20 CET 2007


Reimar D?ffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> writes:

> Hello,
> the operands to dec in these two cases can be a memory address, so the
> assembler can not really infer the size, and icc fails to compile.
> Attached patch fixes it.
>
> Greetings,
> Reimar D?ffinger
>
> Index: libavcodec/i386/vc1dsp_mmx.c
> ===================================================================
> --- libavcodec/i386/vc1dsp_mmx.c	(revision 11225)
> +++ libavcodec/i386/vc1dsp_mmx.c	(working copy)
> @@ -95,7 +95,7 @@
>          SHIFT2_LINE(168, 4, 1, 2, 3)
>          "sub       %8, %1                  \n\t"
>          "add       $8, %2                  \n\t"
> -        "dec       %0                      \n\t"
> +        "decl      %0                      \n\t"
>          "jnz 1b                            \n\t"
>          : "+g"(w), "+r"(src), "+r"(dst)
>          : "r"(stride), "r"(-2*stride), "m"(shift),
> @@ -191,7 +191,7 @@
>          TRANSFER_DO_PACK
>          "add       %7, %1                  \n\t"
>          "add       %5, %2                  \n\t"
> -        "dec       %0                      \n\t"
> +        "decl      %0                      \n\t"
>          "jnz 1b                            \n\t"
>          : "+g"(h), "+r"(src),  "+r"(dst)
>          : "r"(offset), "r"(-2*offset), "g"(stride), "m"(rnd),

With what little x86 assembler I know, that looks OK (and it builds
over here too).  However, there are several more similar instances in
the same file.  I suppose they happened to get compiled differently,
and thus didn't cause you any trouble.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list