[MPlayer-cvslog] CVS: main/postproc swscale_template.c, 1.124, 1.125

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Sat May 6 11:13:56 CEST 2006


Hi,
On Sat, May 06, 2006 at 04:01:42AM +0200, Michael Niedermayer CVS wrote:
>  			asm volatile(
> -				"mov %%"REG_SP", "ESP_OFFSET"(%5)	\n\t"
> -				"mov %4, %%"REG_SP"			\n\t"
> -				YSCALEYUV2RGB(%%REGa, %5)
> -				WRITEBGR32(%%REGSP, 8280(%5), %%REGa)
> -				"mov "ESP_OFFSET"(%5), %%"REG_SP"	\n\t"
> -
> -			:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest),
> -			"r" (&c->redDither)
> -			: "%"REG_a
> +				"mov %%"REG_b", "ESP_OFFSET"(%5)	\n\t"
> +				"mov %4, %%"REG_b"			\n\t"
> +                                "push %%"REG_BP"                        \n\t"
> +				YSCALEYUV2RGB(%%REGBP, %5)
> +				WRITEBGR32(%%REGb, 8280(%5), %%REGBP)
> +                                "pop %%"REG_BP"                         \n\t"
> +				"mov "ESP_OFFSET"(%5), %%"REG_b"	\n\t"
> +
> +			:: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1), "m" (dest),
> +			"a" (&c->redDither)

Is there a reason why REG_b is save/restored into the struct and REG_BP
on the stack? Can't both be stored in the same place? (I would prefer
stack, but I don't know about performance implications).

Greetings,
Reimar Döffinger




More information about the MPlayer-cvslog mailing list