[FFmpeg-devel] Patch: Inline asm fixes for Intel compiler on Windows

Matt Oliver protogonoi at gmail.com
Tue Mar 18 06:52:55 CET 2014


> i think its better not to have unneeded code in there, so if its
> needed it should stay, if not it should be removed


Removed.

These constraints are there because of limitions/shortcommings of
> intels asm() support on windows.
> IMO we should keep such workarounds to the minimum possible


Fair enough, I updated the patches accordingly. These are basically the
minimum workarounds possible. The main changes occurred in yuv2rgb_template
where all references were added to the YUV2RGB_OPERANDS macro.  This added
5 constraints (although in many situations only 1 is actually used). The
one thing ill point out is that these additional named constraints are
variables that are not actually from the YUV2RGB macro (which is why they
weren't initially put in there) so this may make the code a little less
readable for other devs as all these variables are used by the other
functions that use the YUV2RGB macro not from within the macro itself.

Also I had to add an #if to define RGB_PACK24_B_OPERANDS as these variables
are only defined if COMPILE_TEMPLATE_MMXEXT so having them all the time
will result in errors. This again may be a little unclear for other
developers as the variables in question (mask1101 etc.) havnt even been
declared at this point in code. And of course the variables are not
relevant to YUV2RGB macro and are only used in a couple of the later
functions as they are only relevant to the RGB_PACK24_B macro and the
functions that use it. Trying to separate the RGB_PACK24_B variables cant
be simply done, in fact the simplest way to separate them is pretty much
the way the original patch was done. So its up to you which one you prefer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-2-6-Check-for-nonlocal-inline-asm-labels.patch
Type: application/octet-stream
Size: 1800 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-3-6-Check-for-inline-asm-direct-symbol-reference.patch
Type: application/octet-stream
Size: 26793 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-4-6-Fix-for-broken-register-allocation-issues-with-I.patch
Type: application/octet-stream
Size: 3019 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-5-6-Fixed-64bit-conformance-with-mvzbl.patch
Type: application/octet-stream
Size: 1607 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-6-6-Fix-for-missing-intel-nmemonic-support.patch
Type: application/octet-stream
Size: 3547 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Final-Enable-inline-asm-in-intel-compiler-on-windows.patch
Type: application/octet-stream
Size: 849 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140318/6702a207/attachment-0005.obj>


More information about the ffmpeg-devel mailing list