Jiaxun Yang: > 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.y...@flygoat.com> > Cc: Jin Bo <ji...@loongson.cn> > Cc: yinshiyou...@loongson.cn > --- > libavcodec/mips/blockdsp_mmi.c | 8 +- > libavcodec/mips/h264chroma_mmi.c | 50 ++++++ > 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 | 22 ++- > libavcodec/mips/wmv2dsp_mmi.c | 2 +- > 16 files changed, 453 insertions(+), 383 deletions(-)
[...] > diff --git a/libavcodec/mips/h264chroma_mmi.c > b/libavcodec/mips/h264chroma_mmi.c > index cc2d7cb7e9..f62cf50e54 100644 > --- a/libavcodec/mips/h264chroma_mmi.c > +++ b/libavcodec/mips/h264chroma_mmi.c > @@ -72,7 +72,12 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > A.i = 64 - D.i - B.i - C.i; > > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[B], %[B], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp9] \n\t" > @@ -171,7 +176,12 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > A.i = 64 - E.i; > > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -218,7 +228,12 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > A.i = 64 - E.i; > > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -324,7 +339,12 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > C.i = (y << 3) - D.i; > A.i = 64 - D.i - B.i - C.i; > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[B], %[B], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp9] \n\t" > @@ -391,7 +411,12 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > E.i = x << 3; > A.i = 64 - E.i; > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -439,7 +464,12 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > E.i = y << 3; > A.i = 64 - E.i; > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -500,7 +530,12 @@ void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > > if (D.i) { > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[B], %[B], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -549,7 +584,12 @@ void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > } else if (E.i) { > const int step = C.i ? stride : 1; > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp5] \n\t" > @@ -621,7 +661,12 @@ void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > > if (D.i) { > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[B], %[B], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp7] \n\t" > @@ -672,7 +717,12 @@ void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t > *src, ptrdiff_t stride, > } else if (E.i) { > const int step = C.i ? stride : 1; > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "dli %[tmp0], 0x06 \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "pshufh %[A], %[A], %[ftmp0] \n\t" > "pshufh %[E], %[E], %[ftmp0] \n\t" > "mtc1 %[tmp0], %[ftmp5] \n\t" [...] > diff --git a/libavcodec/mips/vp9_mc_mmi.c b/libavcodec/mips/vp9_mc_mmi.c > index 812f7a6994..2fc2be7973 100644 > --- a/libavcodec/mips/vp9_mc_mmi.c > +++ b/libavcodec/mips/vp9_mc_mmi.c > @@ -82,8 +82,13 @@ static void convolve_horiz_mmi(const uint8_t *src, int32_t > src_stride, > dst_stride -= w; > __asm__ volatile ( > "move %[tmp1], %[width] \n\t" > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > "gsldlc1 %[filter1], 0x07(%[filter]) \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "gsldlc1 %[filter1], 0x03(%[filter]) \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "gsldrc1 %[filter1], 0x00(%[filter]) \n\t" > "gsldlc1 %[filter2], 0x0f(%[filter]) \n\t" > "gsldrc1 %[filter2], 0x08(%[filter]) \n\t" > @@ -157,8 +162,13 @@ static void convolve_vert_mmi(const uint8_t *src, > int32_t src_stride, > dst_stride -= w; > > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > "gsldlc1 %[ftmp4], 0x07(%[filter]) \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "gsldlc1 %[ftmp4], 0x03(%[filter]) \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "gsldrc1 %[ftmp4], 0x00(%[filter]) \n\t" > "gsldlc1 %[ftmp5], 0x0f(%[filter]) \n\t" > "gsldrc1 %[ftmp5], 0x08(%[filter]) \n\t" > @@ -253,8 +263,13 @@ static void convolve_avg_horiz_mmi(const uint8_t *src, > int32_t src_stride, > > __asm__ volatile ( > "move %[tmp1], %[width] \n\t" > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > "gsldlc1 %[filter1], 0x07(%[filter]) \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "gsldlc1 %[filter1], 0x03(%[filter]) \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "gsldrc1 %[filter1], 0x00(%[filter]) \n\t" > "gsldlc1 %[filter2], 0x0f(%[filter]) \n\t" > "gsldrc1 %[filter2], 0x08(%[filter]) \n\t" > @@ -339,8 +354,13 @@ static void convolve_avg_vert_mmi(const uint8_t *src, > int32_t src_stride, > dst_stride -= w; > > __asm__ volatile ( > +<<<<<<< HEAD > "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > "gsldlc1 %[ftmp4], 0x07(%[filter]) \n\t" > +======= > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "gsldlc1 %[ftmp4], 0x03(%[filter]) \n\t" > +>>>>>>> parent of ebedd26eef (libavcodec/mips: Fix specification of > instruction name) > "gsldrc1 %[ftmp4], 0x00(%[filter]) \n\t" > "gsldlc1 %[ftmp5], 0x0f(%[filter]) \n\t" > "gsldrc1 %[ftmp5], 0x08(%[filter]) \n\t" > @@ -444,7 +464,7 @@ static void convolve_avg_mmi(const uint8_t *src, int32_t > src_stride, > > __asm__ volatile ( > "move %[tmp1], %[width] \n\t" > - "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > "li %[tmp0], 0x10001 \n\t" > "dmtc1 %[tmp0], %[ftmp3] \n\t" > "punpcklhw %[ftmp3], %[ftmp3], %[ftmp3] \n\t" > diff --git a/libavcodec/mips/wmv2dsp_mmi.c b/libavcodec/mips/wmv2dsp_mmi.c > index 1a6781ae77..82e16f929b 100644 > --- a/libavcodec/mips/wmv2dsp_mmi.c > +++ b/libavcodec/mips/wmv2dsp_mmi.c > @@ -106,7 +106,7 @@ void ff_wmv2_idct_add_mmi(uint8_t *dest, ptrdiff_t > line_size, int16_t *block) > wmv2_idct_col_mmi(block + i); > > __asm__ volatile ( > - "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > + "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" > > // low 4 loop > MMI_LDC1(%[ftmp1], %[block], 0x00) > This revert does not apply cleanly; it contains version conflict markers. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".