[Ffmpeg-devel] libswscale coding style

Marc Hoffman mmh
Sat Apr 28 02:58:22 CEST 2007


Michael Niedermayer writes:
 > Hi
 > 
 > On Sat, Apr 28, 2007 at 01:20:17AM +0200, Diego Biurrun wrote:
 > > On Fri, Apr 27, 2007 at 07:14:30PM +0200, Diego Biurrun wrote:
 > > > On Fri, Apr 27, 2007 at 12:29:28PM +0200, Ivo wrote:
 > > > > 
 > > > > On Friday 27 April 2007 03:23, Marc Hoffman wrote:
 > > > > > Diego Biurrun writes:
 > > > > >  > I've just implemented pre-commit hooks for libswscale that check for
 > > > > >  > tabs and trailing whitespace, same as for FFmpeg.
 > > > > >  >
 > > > > >  > I'm in the process of removing trailing whitespace and tabs and
 > > > > >  > reformatting the files while I'm at it.
 > > > > >  > What's the preferred style for inline ASM, things like
 > > > > >  > rgb2rgb_template.c:100?
 > > > > 
 > > > > I would really like to see the "instr op, op\n\t" be replaced by something 
 > > > > more readable, like:
 > > > > 
 > > > >     "   movq %%mm0, %%mm1       \n"
 > > > >     "   movq %%mm1, %%mm2       \n"
 > > > >     "   punpckldq 9%1, %%mm1    \n"
 > > > > 
 > > > > et cetera. Perhaps even align the operands, although that'll be a lot of 
 > > > > work.
 > > > 
 > > > I think I'll align them while I'm at it.  What's the preferred style?
 > > 
 > > Let me be more specific:
 > > 
 > > variant 1)
 > > 
 > >   __asm __volatile(
 > >       PREFETCH"        32%1           \n\t"
 > >       "movd              %1, %%mm0    \n\t"
 > >       "punpckldq        3%1, %%mm0    \n\t"
 > >       "movd             6%1, %%mm1    \n\t"
 > >       "punpckldq        9%1, %%mm1    \n\t"
 > >       "movd            12%1, %%mm2    \n\t"
 > >       "punpckldq       15%1, %%mm2    \n\t"
 > >       "movd            18%1, %%mm3    \n\t"
 > >       "punpckldq       21%1, %%mm3    \n\t"
 > >       "pand           %%mm7, %%mm0    \n\t"
 > >       "pand           %%mm7, %%mm1    \n\t"
 > >       "pand           %%mm7, %%mm2    \n\t"
 > >       "pand           %%mm7, %%mm3    \n\t"
 > >       MOVNTQ"         %%mm0,   %0     \n\t"
 > >       MOVNTQ"         %%mm1,  8%0     \n\t"
 > >       MOVNTQ"         %%mm2, 16%0     \n\t"
 > >       MOVNTQ"         %%mm3, 24%0"
 > >       :"=m"(*dest)
 > >       :"m"(*s)
 > >       :"memory");
 > > 
 > > 
 > > or variant 2)
 > > 
 > >   __asm __volatile(
 > >       PREFETCH"       32%1            \n\t"
 > >       "movd           %1,    %%mm0    \n\t"
 > >       "punpckldq      3%1,   %%mm0    \n\t"
 > >       "movd           6%1,   %%mm1    \n\t"
 > >       "punpckldq      9%1,   %%mm1    \n\t"
 > >       "movd           12%1,  %%mm2    \n\t"
 > >       "punpckldq      15%1,  %%mm2    \n\t"
 > >       "movd           18%1,  %%mm3    \n\t"
 > >       "punpckldq      21%1,  %%mm3    \n\t"
 > >       "pand           %%mm7, %%mm0    \n\t"
 > >       "pand           %%mm7, %%mm1    \n\t"
 > >       "pand           %%mm7, %%mm2    \n\t"
 > >       "pand           %%mm7, %%mm3    \n\t"
 > >       MOVNTQ"         %%mm0, %0       \n\t"
 > >       MOVNTQ"         %%mm1, 8%0      \n\t"
 > >       MOVNTQ"         %%mm2, 16%0     \n\t"
 > >       MOVNTQ"         %%mm3, 24%0"
 > >       :"=m"(*dest)
 > >       :"m"(*s)
 > >       :"memory");
 > > 
 > > ?
 > 
 > variant 1 looks better

Hmm very subtle...but I guess I agree 1 does look better.






More information about the ffmpeg-devel mailing list