[FFmpeg-devel] [PATCH]Use pushfl/popfl in cpuid.c

Måns Rullgård mans
Mon Nov 24 13:20:35 CET 2008


Reimar D?ffinger wrote:
> Hello,
> On Mon, Nov 24, 2008 at 10:23:32AM -0000, M?ns Rullg?rd wrote:
>> Reimar D?ffinger wrote:
>> > On Mon, Nov 24, 2008 at 03:32:21AM +0100, Michael Niedermayer wrote:
>> >> On Sun, Nov 23, 2008 at 08:42:11PM +0100, Reimar D?ffinger wrote:
>> >> > On Sun, Nov 23, 2008 at 07:34:49PM +0100, Michael Niedermayer wrote:
>> >> > > so it seems we are back to .byte 0x9C
>> >> >
>> >> > Hm, I'd be in favour of disabling the check on x86_64 and then going
>> for
>> >> > pushfl, or do you dislike that for some reason?
>> >>
>> >> IMHO if there is a cpuid flag on x86_64 (and i think there is but i
>> >> didnt check) then it seems correct to check it ..
>> >> but of course the argument, that all x86_64 cpus will likely support
>> >> cpuid is pretty good as well, so i surely have no strong oppinion on
>> >> this
>> >
>> > Well, I just checked, the x86_64 specification does not actually require
>> > it it seems.
>>
>> Has there been, or is there likely ever to be, an implementation without
>> it?
>
> No. But none of the solutions seems much better than the other.
>
>> > How about
>> > #ifdef ARCH_X86_64
>> > #define PUSHF "pushfq\n\t"
>> > #define POPF  "popfq\n\t"
>> > #else
>> > #define PUSHF "pushfl\n\t"
>> > #define POPF  "popfl\n\t"
>> > #endif
>> > ?
>>
>> Just make sure you test it on both.
>
> Attached patch seems to work fine on x86_64 (make test passes).

Does it detect the cpuid/simd support correctly?  make test would pass
even if it didn't.

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




More information about the ffmpeg-devel mailing list