[Ffmpeg-devel] [patch] PIC fixes for i386

Michael Niedermayer michaelni
Sun Dec 4 01:51:00 CET 2005


Hi

On Sun, Dec 04, 2005 at 12:36:16AM +0100, Luca Barbato wrote:
[...]
>          asm volatile(
> -            "movd %%"REG_a", %%mm3		\n\t" // last_non_zero_p1
> +            "movd %6, %%mm3			\n\t" // last_non_zero_p1
>              SPREADW(%%mm3)
>              "pxor %%mm7, %%mm7			\n\t" // 0
>              "pxor %%mm4, %%mm4			\n\t" // 0
> @@ -132,11 +132,11 @@
>              "add $8, %%"REG_a"			\n\t"
                         ^^^^^^^
>              " js 1b				\n\t"
>  	    PMAX(%%mm3, %%mm0)
> -            "movd %%mm3, %%"REG_a"		\n\t"
> -            "movzb %%al, %%"REG_a"		\n\t" // last_non_zero_p1
> -	    : "+a" (last_non_zero_p1)
> +            "movd %%mm3, %0			\n\t"
> +            "movzb %b0, %0			\n\t" // last_non_zero_p1
> +	    : "=q" (last_non_zero_p1)
>              : "r" (block+64), "r" (qmat), "r" (bias),
> -              "r" (inv_zigzag_direct16+64), "r" (temp_block+64)
> +              "r" (inv_zigzag_direct16+64), "r" (temp_block+64), "m" (last_non_zero_p1)
>          );

this is wrong ...


>          // note the asm is split cuz gcc doesnt like that many operands ...
>          asm volatile(
> @@ -150,7 +150,7 @@
>          );
>      }else{ // FMT_H263
>          asm volatile(
> -            "movd %%"REG_a", %%mm3		\n\t" // last_non_zero_p1
> +            "movd %6, %%mm3			\n\t" // last_non_zero_p1
>              SPREADW(%%mm3)
>              "pxor %%mm7, %%mm7			\n\t" // 0
>              "pxor %%mm4, %%mm4			\n\t" // 0
> @@ -178,11 +178,11 @@
>              "add $8, %%"REG_a"			\n\t"

that too

[...]

-- 
Michael





More information about the ffmpeg-devel mailing list