[FFmpeg-devel] [PATCH] Revert "libavcodec/mips: Fix specification of instruction name"

yinshiyou-hf at loongson.cn yinshiyou-hf at loongson.cn
Thu Jul 22 16:02:00 EEST 2021


> -----原始邮件-----
> 发件人: "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> 发送时间: 2021-07-22 17:14:17 (星期四)
> 收件人: yinshiyou-hf at loongson.cn, "FFmpeg development discussions and patches" <ffmpeg-devel at ffmpeg.org>
> 抄送: "Jin Bo" <jinbo at loongson.cn>, xuchuenghua at loongson.cn
> 主题: Re: [FFmpeg-devel] [PATCH] Revert "libavcodec/mips: Fix specification of instruction name"
> 
> 
> 在 2021/7/22 下午4:00, yinshiyou-hf at loongson.cn 写道:
> > > -----原始邮件-----
> > > 发件人: "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> > > 发送时间: 2021-07-21 17:39:22 (星期三)
> > > 收件人: ffmpeg-devel at ffmpeg.org
> > > 抄送: yinshiyou-hf at loongson.cn, "Jin Bo" <jinbo at loongson.cn>, "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> > > 主题: [FFmpeg-devel] [PATCH] Revert "libavcodec/mips: Fix specification of instruction name"
> > >
> > > This reverts commit ebedd26eefe2ff4bbf5a358907c4e8e4b0d62eae.
> > >
> > > The original commit states that "gcc supports both of them,
> > > clang only supports the second type", it's obviousely not ture.
> > >
> > > Error: opcode not supported on this processor: loongson3a(mips64r2) `pxor $f3,$f3,$f3'
> > >
> > > Tested with latest GCC11 and binutils 2.37.
> > >
> > > The statement is not true. I guess you may have a internal toolchain modified
> > > for this purpose, but you're not the sole user of FFmpeg, you're breaking
> > > other users like Debian. Also I can't find clang with Loongson extention
> > > support every where.
> > >
> > > I'm reverting this for now. If you would like to implement it, another approach
> > > could be make it as marco in mmiutils.h and filter it with #if define(__clang__).
> > >
> > > Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
> > > Cc: Jin Bo <jinbo at loongson.cn>
> > > Cc: yinshiyou-hf at loongson.cn
> >
> > Thank you for your feedback, following are my opinions:
> > 1)according to the instruction mannul, we should use 'pxor' to operate float register.
> 
> Hi all,
> 
> + Paul Hua for toolchain stuff
> 
> I wonder if it's available for general public?
> 
> > 2) MMI is loongson media extention,compiler from upstream not supported yet is true.
> >   If you are using FFmpeg on loongson platform, you can try to get compiler from
> >   http://www.loongnix.org/index.php/GCC or use loongson repository download.
> >   Loongnix-1.0 :http://ftp.loongnix.org/os/loongnix/1.0/os/
> >   Loongnix-20-mips64el:http://ftp.loongnix.org/os/loongnix/20/mips64el
> 
> No that's not true, Loongson-MMI had upstream toolchain support for 
> Loongson-3A since 2019, which is binutils-2.32 and GCC-9.
> 
> And these instruction naming (and or xor) is available since 2008 for 
> Loongson-2F.
> 

I mean the upstream compiler not support ’pxor‘ yet, not mean MMI.
upstream gcc supports 'xor' for 2F and 3A is true, user can use it with old version ffmpeg?
According to the latest instruction mannual, we should use 'pxor' but not 'xor' which is used fir general register.
It's better add support to the upstream compiler. 

> > 3) If you are using on other mips platform which MMI is unsupported, and MMI havn't disabled automaticlly.
> >   we will fix it soon.
> 
> MMI should be enable for generic MIPS platform as they intend to run on 
> Loongson as well.
> 
> 
> > 4) on the safe side, I suggest to add pxor instruction check in configure check.
> 
> Or ifdef for clang only?
> 
> Thanks.
> 
I think it's better to add support for upstream compiler.
To avoid compiler error, we can upload a patch to check 'pxor' in configure first.</jinbo at loongson.cn></jiaxun.yang at flygoat.com></jiaxun.yang at flygoat.com></jinbo at loongson.cn></jiaxun.yang at flygoat.com></jinbo at loongson.cn></ffmpeg-devel at ffmpeg.org></jiaxun.yang at flygoat.com>


More information about the ffmpeg-devel mailing list