[vlc-devel] [PATCH] yadif : Add SSSE3 and SSE2 support. porting from FFmpeg.

Rémi Denis-Courmont remi at remlab.net
Fri Dec 9 18:41:15 CET 2011


Le mardi 6 décembre 2011 16:50:48 Naohiro KORIYAMA, vous avez écrit :
> I noticed the issue recently when I stated building my own win32 builds
> for chasing the problem around UPnP.
> Both OSX's clang and GCC don't complain  mm and xmm are in the clobber
> list.

That's because you have SSE enabled. This won't work were SSE is detected at 
run-time.

> GCC never allows the registers of unsupported instructions in the clobber
> list. GCC with -mmmx (or -march=pentium-mmx or above), "unknown register
> mm" errors disappear.
> GCC with -msse (or -march=pentium3 or above), "unknown register xmm"
> errors disappear.
> GCC with -mtune doesn't help.

Yeah sure. This was already discussed a few weeks ago here.

That's why we have VLC_MMX and VLC_SSE nowadays.

> Here is the short test log on Mac OS X, native GCC vs cross mingw32 GCC.
> http://pastebin.com/ZWA2JpRv
> 
> 
> I found a discussion about the clobber.
> http://ffmpeg.org/pipermail/ffmpeg-devel/2010-September/102164.html
> http://ffmpeg.org/pipermail/ffmpeg-devel/2010-October/098782.html
> As a result of the discussion,
> - Check whether xmm clobbers are supported in configure like:
> int main()
> {
>    asm volatile( "" ::: "xmm0");
> }
> - Define a macro that put xmm registers to the clobber list only if
> xmm clobbers are supported.

That's a brittle hack. Please don't do this.

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



More information about the vlc-devel mailing list