[MPlayer-dev-eng] [PATCH] vf_bmovl2, complete and documented
Michael Niedermayer
michaelni at gmx.at
Wed Jan 14 13:19:12 CET 2004
Hi
On Wednesday 14 January 2004 04:10, Jason Tackaberry wrote:
> Hi Michael,
>
> On Tue, 2004-01-13 at 22:04, Michael Niedermayer wrote:
> > anything which changes must be on the output or clobber list, or u must
> > be sure the compiler is too dumb to mess with it (mmx registers for
> > example can be ignored)
>
> I am only clobbering eax, and have specified it on the clobber list.
> Have I missed something?
yes
"movq %%mm0, %0\n\t"
^^
"emms\n\t"
:: "m" (dst[0]), "m" (src[0]), "m" (alpha[0]), "m" (d[0]),
"m" (layer_alpha_array[0]), "m" (round[0]), "m" (layer_alpha) :
"%eax");
>
> > else (for example on the stack to save some registers accessing it), gcc
> > doesnt do this as its way too dumb, its also not entirely clear if this
> > would be alowed at all, as there is AFAIK no authorative doc which
> > clearly defines this ...
>
> I'm by no means an expert (or barely competent) when it comes to gcc
> assembler. What would your recommendation be?
cast the stuff to the right type before using it
"m"(((uint64_t*)dst)[0]) instead of "m"(dst[0])
[...]
--
Michael
level[i]= get_vlc(); i+=get_vlc(); (violates patent EP0266049)
median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]); (violates patent #5,905,535)
buf[i]= qp - buf[i-1]; (violates patent #?)
for more examples, see http://mplayerhq.hu/~michael/patent.html
stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en
More information about the MPlayer-dev-eng
mailing list