[FFmpeg-devel] [PATCH] remove gcc 3.3 workaround in swscale_template.c
Diego Biurrun
diego
Mon Sep 21 00:16:46 CEST 2009
On Sun, Sep 20, 2009 at 09:02:46PM +0200, Reimar D?ffinger wrote:
> On Sun, Sep 20, 2009 at 08:00:40PM +0200, Diego Biurrun wrote:
> > On Sun, Sep 20, 2009 at 07:12:44PM +0200, Reimar D?ffinger wrote:
> > > On Sun, Sep 20, 2009 at 06:53:36PM +0200, Diego Biurrun wrote:
> > > > There's an ugly preprocessor gcc 3.3 workaround in swscale_template.c:
> > > >
> > > > /* GCC 3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
> > > > which is needed to support GCC 4.0. */
> > > > #if ARCH_X86_64 && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
> > > > :: "m" (src1), "m" (dst), "g" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
> > > > #else
> > > > :: "m" (src1), "m" (dst), "m" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
> > > > #endif
> > > >
> > > > At the very least it should be updated to use the AV_GCC_VERSION_AT_LEAST
> > > > macro from libavutil. However, I would prefer to get rid of it
> > > > completely. If I understand the comment correctly, deleting the whole
> > > > #else clause would be the way to achieve this. Since I know little
> > > > enough assembler to have no real idea what "g" and "m" operands are all
> > > > about I'd like to hear an informed opinion.
> > >
> > > Huh? No, the upper line should give faster code but causes crashes due
> > > to miscompilation with gcc 3.3
> > > The lower line does not compile with gcc 4.0 on x86_64 but produces correct code
> > > with 3.3.
> > > At least that's what the comment says.
> >
> > OK, then I propose getting rid of the workaround completely. I don't
> > think x86_64 users with gcc 3.3 exist, so it's not worth the ugliness on
> > our side.
>
> Hm? Which do you consider a workaround? I think you might still need two cases,
> one for x86_32 and one for x86_64 for gcc 4.x, you could only get rid of the
> gcc version check.
OK, I propose the attached patch.
Diego
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gnuc_x86_64.diff
Type: text/x-diff
Size: 768 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090921/629c672c/attachment.diff>
More information about the ffmpeg-devel
mailing list