[FFmpeg-devel] [PATCH] avcodec/mips: Support old style mmi instruction mnemonics

yinshiyou-hf at loongson.cn yinshiyou-hf at loongson.cn
Mon Aug 2 11:33:57 EEST 2021


> -----原始邮件-----
> 发件人: "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> 发送时间: 2021-08-02 13:40:54 (星期一)
> 收件人: "FFmpeg development discussions and patches" <ffmpeg-devel at ffmpeg.org>, yinshiyou-hf at loongson.cn
> 抄送: 
> 主题: Re: [FFmpeg-devel] [PATCH] avcodec/mips: Support old style mmi instruction mnemonics
> 
> 
> 在 2021/7/29 20:26, Jiaxun Yang 写道:
> >
> > 在2021年7月29日七月 下午5:29,yinshiyou-hf at loongson.cn写道:
> >>> -----原始邮件-----
> >>> 发件人: "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> >>> 发送时间: 2021-07-29 14:32:35 (星期四)
> >>> 收件人: ffmpeg-devel at ffmpeg.org
> >>> 抄送: yinshiyou-hf at loongson.cn, "Jiaxun Yang" <jiaxun.yang at flygoat.com>
> >>> 主题: [PATCH] avcodec/mips: Support old style mmi instruction mnemonics
> >>>
> >>> Loongson had renamed serval instruction mnemonics to distinguish
> >>> integral and simd opreations. In ebedd26 ("libavcodec/mips: Fix
> >>> specification of instruction name"), all old style mnemonics are
> >>> replaced by the new one.
> >>> However, upstream GCC doesn't support new style mnemonics, it breaks
> >>> build.
> >>> As stated by Loongson, their GCC toolchain support both style while
> >>> clang only support the new one, we'll use new style for clang only.
> >>>
> >>> Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
> >>> ---
> >>>   libavcodec/mips/blockdsp_mmi.c    |   8 +-
> >>>   libavcodec/mips/h264chroma_mmi.c  |  20 +--
> >>>   libavcodec/mips/h264dsp_mmi.c     | 288 +++++++++++++++---------------
> >>>   libavcodec/mips/h264pred_mmi.c    |  18 +-
> >>>   libavcodec/mips/h264qpel_mmi.c    |  26 +--
> >>>   libavcodec/mips/hevcdsp_mmi.c     |  32 ++--
> >>>   libavcodec/mips/hpeldsp_mmi.c     |  26 +--
> >>>   libavcodec/mips/idctdsp_mmi.c     |   2 +-
> >>>   libavcodec/mips/mpegvideo_mmi.c   |  94 +++++-----
> >>>   libavcodec/mips/pixblockdsp_mmi.c |   8 +-
> >>>   libavcodec/mips/simple_idct_mmi.c |  14 +-
> >>>   libavcodec/mips/vc1dsp_mmi.c      |  34 ++--
> >>>   libavcodec/mips/vp3dsp_idct_mmi.c | 132 +++++++-------
> >>>   libavcodec/mips/vp8dsp_mmi.c      |  80 ++++-----
> >>>   libavcodec/mips/vp9_mc_mmi.c      |  10 +-
> >>>   libavcodec/mips/wmv2dsp_mmi.c     |   2 +-
> >>>   libavutil/mips/mmiutils.h         |  22 +++
> >>>   17 files changed, 419 insertions(+), 397 deletions(-)
> >>
> >> I suggest adding 'pxor' check in configure
> > Hmm, I don't think it's worthy to hava a configure option for this.
> >
> >> and adding 'pxor' support in upstream gcc/clang.
> 
> 
> Are you going to input anything?
> 
> If not I may request TC comment next week.
> 
> Downstream users are complaining about the breakage.
> 
> Thanks.
> 
> - Jiaxun
> 
> 
> > For clang I don't think it's possible as we don't have loongson mmi support in upstream codebase.
> >
> > For GCC I'd like to have a try but I need a full list of instructions needs to be converted as I asked in another thread.
> >
> > Also given that we've already have many users with older toolchain and it's impossible to let them upgrade at once, this method could address the issue without trouble present users.
> >
> > Thanks.
> >


1. What I mean adding 'pxor' check in configure is just replace 'punpcklhw' with 'pxor'. Refer to jinbo's patch,it can workaround the build failed.

2. It's great that you will try to add support in gcc, it's helpful for MIPS code to become concise.

3. About the full list of instruction, you can CC to me in the thread you have mentioned, I will try to help.


More information about the ffmpeg-devel mailing list