[FFmpeg-devel] [Ffmpeg-devel] [PATCH] detect support for 10 operands in configure

Diego Biurrun diego
Fri Feb 13 12:28:31 CET 2009


On Thu, Feb 12, 2009 at 07:13:24PM +0000, Loren Merritt wrote:
> On Thu, 12 Feb 2009, Diego Biurrun wrote:
> > On Thu, Feb 12, 2009 at 03:49:33AM +0000, Loren Merritt wrote:
> >> On Wed, 11 Feb 2009, Diego Biurrun wrote:
> >>
> >>> Loren, this reminds me: I think you wrote some Vorbis (?) optimization
> >>> that broke on gcc 2.95 and which you eventually reverted.  I think the
> >>> reason was this problem.  Maybe you can restore it now.
> >>
> >> There's r5964, but that was removed with my fft overhaul.
> >
> > Umm, the code is still there.  What exactly do you mean?
> 
> Oops, I saw one of the asm blocks replaced and didn't notice the other 
> one.
> However, it is not a question of HAVE_TEN_OPERANDS. That asm used only 5
> operands, and the problem was that gcc<4 failed to find 5 registers for 
> them. (Because it doesn't know how to spill ebx or ebp, nor does it know 
> how to spill one operand to free up a temp register to compute another.)
> 
> I could put fft_3dn under (HAVE_7REGS || GCC4).
> I could write the loop part in inline asm, and put fft_3dn under HAVE_7REGS.
> I could force-disable frame-pointer and pic on fft_3dn.
> I could move the loop to yasm, which isn't all that different insofar as 
> it also ignores frame-pointer and pic.
> Or I could laugh at x86 for having too few registers, and ignore it.

Hmmm, I have no problem compiling either fft_3dn.c nor fft_3dn2.c with
any gcc I tested: 2.95.4, 3.3, 3.4, 4.1...

So what exactly is the problem?

Diego




More information about the ffmpeg-devel mailing list