[FFmpeg-devel] [FFmpeg-devel-irc] IRC log for 2010-09-08
Måns Rullgård
mans
Fri Sep 10 14:07:18 CEST 2010
Michael Karcher <ffmpeg at mkarcher.dialup.fu-berlin.de> writes:
> Am Donnerstag, den 09.09.2010, 18:02 -0400 schrieb Ronald S. Bultje:
>> Hi,
>>
>> On Thu, Sep 9, 2010 at 5:52 PM, Reimar D?ffinger
>> <Reimar.Doeffinger at gmx.de> wrote:
>> > On Thu, Sep 09, 2010 at 05:22:10PM -0400, Ronald S. Bultje wrote:
>> >> Our inline asm has huge issues on Win64, many which
>> >> cannot be easily fixed.
>> >
>> > That I just don't see.
>>
>> As you know (you were the first to provide a patch for this), xmm6 and
>> xmm7 on Win64 are callee-save.
>>
>> This means that any such construct...
>>
>> void function()
>> {
>> asm("movd $0, xmm7\r\n", mem);
>> //something else
>> asm("movd xmm7, $0\r\n", mem);
>> }
>>
>> ...cannot possibly be made to work. Putting xmm7 in the clobberlist
>> doesn't preserve its value between asm() blocks, and not doing so
>> screws up the caller's original xmm7 value.
>
> What about using a variable with an xmm-reg constraint instead of
> hardcoding xmm7 and have gcc allocate it (and care about
> spilling/preserving)?
That breaks a whole bunch of compilers which otherwise work, including
all known gcc versions for Windows. We saw this when we tried adding
the registers to the clobber lists where this would otherwise be correct.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list