[FFmpeg-devel] [RFC] clobbers for XMM registers

Måns Rullgård mans
Fri Oct 1 01:42:33 CEST 2010


Michael Niedermayer <michaelni at gmx.at> writes:

> On Thu, Sep 30, 2010 at 04:02:00PM -0300, Ramiro Polla wrote:
>> 2010/9/30 M?ns Rullg?rd <mans at mansr.com>:
>> > Ramiro Polla <ramiro.polla at gmail.com> writes:
>> >> 2010/9/30 M?ns Rullg?rd <mans at mansr.com>:
>> >>> Ramiro Polla <ramiro.polla at gmail.com> writes:
>> >>>> What about
>> >>>> #if HAVE_XMM_CLOBBERS
>> >>>> # ? ?define XMM_CLOBBERS(a, ...) __VA_ARGS__
>> >>>> #else
>> >>>> # ? ?define XMM_CLOBBERS(a, ...) a
>> >>>> #endif
>> >>>>
>> >>>> to be used as in lavc/x86/fft_sse.c:
>> >>>> ? ? ? ? :"+r"(j), "+r"(k)
>> >>>> ? ? ? ? :"r"(output+n4), "r"(output+n4*3),
>> >>>> ? ? ? ? ?"m"(*m1m1m1m1)
>> >>>> ? ? ? ? XMM_CLOBBERS(, : "%xmm0", "%xmm1", "%xmm7")
>> >>>> ? ? );
>> >>>
>> >>> That falls over if any other clobbers are needed.
>> >>
>> >> If any other clobbers are needed they could be written before the macro.
>> >
>> > That won't work.
>> 
>> : "eax" XMM_CLOBBERS(,, "%xmm0", "%xmm1", "%xmm7")
>> 
>> But I agree having "cc" as dummy is simpler.
>
> it may be simpler but your variant is more correct

If "cc" is a no-op neither variant is more correct.  Mine is a hell of
a lot prettier though.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list