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

Jiaxun Yang jiaxun.yang at flygoat.com
Sat Aug 7 06:01:06 EEST 2021



在 2021/8/2 下午4:33, yinshiyou-hf at loongson.cn 写道:
>> -----原始邮件-----
>> 发件人: "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.
It means distros using upstream toolchain lost their right to enjoy 
Loongson MMI?
Why we're going to make it happen?

> 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.

I'm pasting the previous post here:

I'm trying to get that part fixed in upstream toolchain, I wonder that 
beside these four instructions, do we have other instructions renamed?

I have a list of MMI instructions sharing name with regular instructions.

     add
     addu
     dadd
     sub
     subu
     dsub
     or
     sll
     dsll
     xor
     nor
     and
     srl
     dsrl
     sra
     dsra
     sequ
     sltu
     sleu
     seq
     slt
     sle

Could you please help me check your manual?

Thanks.

- Jiaxun

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list