[FFmpeg-devel] [PATCH 1/3] libavcodec/mips: Fix specification of instruction name
yinshiyou-hf at loongson.cn
yinshiyou-hf at loongson.cn
Fri May 28 12:21:39 EEST 2021
> -----原始邮件-----
> 发件人: "Jin Bo" <jinbo at loongson.cn>
> 发送时间: 2021-05-28 10:04:39 (星期五)
> 收件人: ffmpeg-devel at ffmpeg.org
> 抄送: "Jin Bo" <jinbo at loongson.cn>
> 主题: [FFmpeg-devel] [PATCH 1/3] libavcodec/mips: Fix specification of instruction name
>
> 1.'xor,or,and' to 'pxor,por,pand'. In the case of operating FPR,
> gcc supports both of them, clang only supports the second type.
> 2.'dsrl,srl' to 'ssrld,ssrlw'. In the case of operating FPR, gcc
> supports both of them, clang only supports the second type.
>
> Signed-off-by: Jin Bo <jinbo at loongson.cn>
> ---
> 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 +-
> 16 files changed, 397 insertions(+), 397 deletions(-)
>
> diff --git a/libavcodec/mips/blockdsp_mmi.c b/libavcodec/mips/blockdsp_mmi.c
> index 68641e2..8b5c7e9 100644
> --- a/libavcodec/mips/blockdsp_mmi.c
> +++ b/libavcodec/mips/blockdsp_mmi.c
> @@ -76,8 +76,8 @@ void ff_clear_block_mmi(int16_t *block)
> double ftmp[2];
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp1] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp1] \n\t"
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x00)
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x10)
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x20)
> @@ -97,8 +97,8 @@ void ff_clear_blocks_mmi(int16_t *block)
> double ftmp[2];
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp1] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp1] \n\t"
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x00)
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x10)
> MMI_SQC1(%[ftmp0], %[ftmp1], %[block], 0x20)
> diff --git a/libavcodec/mips/h264chroma_mmi.c b/libavcodec/mips/h264chroma_mmi.c
> index 739dd7d..dbcba10 100644
> --- a/libavcodec/mips/h264chroma_mmi.c
> +++ b/libavcodec/mips/h264chroma_mmi.c
> @@ -72,7 +72,7 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> A = 64 - D - B - C;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -172,7 +172,7 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> A = 64 - E;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> @@ -221,7 +221,7 @@ void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> A = 64 - E;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> @@ -328,7 +328,7 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> C = (y << 3) - D;
> A = 64 - D - B - C;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -396,7 +396,7 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> E = x << 3;
> A = 64 - E;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> @@ -446,7 +446,7 @@ void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> E = y << 3;
> A = 64 - E;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> @@ -509,7 +509,7 @@ void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
>
> if (D) {
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -559,7 +559,7 @@ void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> } else if (E) {
> const int step = C ? stride : 1;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> @@ -633,7 +633,7 @@ void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
>
> if (D) {
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -685,7 +685,7 @@ void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
> } else if (E) {
> const int step = C ? stride : 1;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x06 \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[E], %[E], %[ftmp0] \n\t"
> diff --git a/libavcodec/mips/h264dsp_mmi.c b/libavcodec/mips/h264dsp_mmi.c
> index d4fcef0..fe12b28 100644
> --- a/libavcodec/mips/h264dsp_mmi.c
> +++ b/libavcodec/mips/h264dsp_mmi.c
> @@ -34,7 +34,7 @@ void ff_h264_add_pixels4_8_mmi(uint8_t *dst, int16_t *src, int stride)
> DECLARE_VAR_LOW32;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[src], 0x00)
> MMI_LDC1(%[ftmp2], %[src], 0x08)
> MMI_LDC1(%[ftmp3], %[src], 0x10)
> @@ -89,7 +89,7 @@ void ff_h264_idct_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
> MMI_LDC1(%[ftmp2], %[block], 0x10)
> MMI_LDC1(%[ftmp3], %[block], 0x18)
> /* memset(block, 0, 32) */
> - "xor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> "gssqc1 %[ftmp4], %[ftmp4], 0x00(%[block]) \n\t"
> "gssqc1 %[ftmp4], %[ftmp4], 0x10(%[block]) \n\t"
> "dli %[tmp0], 0x01 \n\t"
> @@ -127,7 +127,7 @@ void ff_h264_idct_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
> "psubh %[ftmp5], %[ftmp5], %[ftmp4] \n\t"
> MMI_ULWC1(%[ftmp2], %[dst], 0x00)
> MMI_LWXC1(%[ftmp0], %[dst], %[stride], 0x00)
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "psrah %[ftmp3], %[ftmp10], %[ftmp9] \n\t"
> "psrah %[ftmp4], %[ftmp11], %[ftmp9] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp7] \n\t"
> @@ -419,7 +419,7 @@ void ff_h264_idct8_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
> "psubh %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> MMI_SDC1(%[ftmp0], $sp, 0x10)
> "dmfc1 %[tmp1], %[ftmp2] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp2] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp2] \n\t"
> MMI_SDC1(%[ftmp2], %[block], 0x00)
> MMI_SDC1(%[ftmp2], %[block], 0x08)
> MMI_SDC1(%[ftmp2], %[block], 0x10)
> @@ -555,7 +555,7 @@ void ff_h264_idct8_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
> "psubh %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> MMI_SDC1(%[ftmp7], $sp, 0x18)
> "dmfc1 %[tmp2], %[ftmp0] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_ULWC1(%[ftmp6], %[addr0], 0x00)
> MMI_LWXC1(%[ftmp7], %[addr0], %[stride], 0x00)
> "psrah %[ftmp2], %[ftmp2], %[ftmp10] \n\t"
> @@ -646,7 +646,7 @@ void ff_h264_idct_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
>
> __asm__ volatile (
> "mtc1 %[dc], %[ftmp5] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[ftmp5], %[ftmp5], %[ftmp0] \n\t"
> MMI_ULWC1(%[ftmp1], %[dst0], 0x00)
> MMI_ULWC1(%[ftmp2], %[dst1], 0x00)
> @@ -690,7 +690,7 @@ void ff_h264_idct8_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride)
>
> __asm__ volatile (
> "mtc1 %[dc], %[ftmp5] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[ftmp5], %[ftmp5], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[dst0], 0x00)
> MMI_LDC1(%[ftmp2], %[dst1], 0x00)
> @@ -929,7 +929,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "packsswh %[ftmp0], %[ftmp0], %[ftmp1] \n\t"
> "packsswh %[ftmp2], %[ftmp2], %[ftmp5] \n\t"
> "dmfc1 %[tmp1], %[ftmp0] \n\t"
> - "dsrl %[ftmp0], %[ftmp0], %[ftmp9] \n\t"
> + "ssrld %[ftmp0], %[ftmp0], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp0] \n\t"
> "sh %[tmp1], 0x00(%[output]) \n\t"
> "sh %[input], 0x80(%[output]) \n\t"
> @@ -938,7 +938,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "sh %[tmp1], 0x20(%[output]) \n\t"
> "sh %[input], 0xa0(%[output]) \n\t"
> "dmfc1 %[tmp1], %[ftmp2] \n\t"
> - "dsrl %[ftmp2], %[ftmp2], %[ftmp9] \n\t"
> + "ssrld %[ftmp2], %[ftmp2], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp2] \n\t"
> "sh %[tmp1], 0x40(%[output]) \n\t"
> "sh %[input], 0xc0(%[output]) \n\t"
> @@ -963,7 +963,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "packsswh %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> "packsswh %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> "dmfc1 %[tmp1], %[ftmp3] \n\t"
> - "dsrl %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "ssrld %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp3] \n\t"
> "sh %[tmp1], 0x100(%[output]) \n\t"
> "sh %[input], 0x180(%[output]) \n\t"
> @@ -972,7 +972,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "sh %[tmp1], 0x120(%[output]) \n\t"
> "sh %[input], 0x1a0(%[output]) \n\t"
> "dmfc1 %[tmp1], %[ftmp4] \n\t"
> - "dsrl %[ftmp4], %[ftmp4], %[ftmp9] \n\t"
> + "ssrld %[ftmp4], %[ftmp4], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp4] \n\t"
> "sh %[tmp1], 0x140(%[output]) \n\t"
> "sh %[input], 0x1c0(%[output]) \n\t"
> @@ -1016,7 +1016,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "packsswh %[ftmp0], %[ftmp0], %[ftmp1] \n\t"
> "packsswh %[ftmp2], %[ftmp2], %[ftmp5] \n\t"
> "dmfc1 %[tmp1], %[ftmp0] \n\t"
> - "dsrl %[ftmp0], %[ftmp0], %[ftmp9] \n\t"
> + "ssrld %[ftmp0], %[ftmp0], %[ftmp9] \n\t"
> "sh %[tmp1], 0x00(%[output]) \n\t"
> "mfc1 %[input], %[ftmp0] \n\t"
> "dsrl %[tmp1], %[tmp1], 0x10 \n\t"
> @@ -1025,7 +1025,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> PTR_SRL "%[input], %[input], 0x10 \n\t"
> "dmfc1 %[tmp1], %[ftmp2] \n\t"
> "sh %[input], 0xa0(%[output]) \n\t"
> - "dsrl %[ftmp2], %[ftmp2], %[ftmp9] \n\t"
> + "ssrld %[ftmp2], %[ftmp2], %[ftmp9] \n\t"
> "sh %[tmp1], 0x40(%[output]) \n\t"
> "mfc1 %[input], %[ftmp2] \n\t"
> "dsrl %[tmp1], %[tmp1], 0x10 \n\t"
> @@ -1050,7 +1050,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "packsswh %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> "packsswh %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> "dmfc1 %[tmp1], %[ftmp3] \n\t"
> - "dsrl %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "ssrld %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp3] \n\t"
> "sh %[tmp1], 0x100(%[output]) \n\t"
> "sh %[input], 0x180(%[output]) \n\t"
> @@ -1059,7 +1059,7 @@ void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
> "sh %[tmp1], 0x120(%[output]) \n\t"
> "sh %[input], 0x1a0(%[output]) \n\t"
> "dmfc1 %[tmp1], %[ftmp4] \n\t"
> - "dsrl %[ftmp4], %[ftmp4], %[ftmp9] \n\t"
> + "ssrld %[ftmp4], %[ftmp4], %[ftmp9] \n\t"
> "mfc1 %[input], %[ftmp4] \n\t"
> "sh %[tmp1], 0x140(%[output]) \n\t"
> "sh %[input], 0x1c0(%[output]) \n\t"
> @@ -1144,7 +1144,7 @@ void ff_h264_weight_pixels16_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
>
> for (y=0; y<height; y++,="" block+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[block0], 0x00)
> MMI_LDC1(%[ftmp2], %[block1], 0x00)
> "mtc1 %[weight], %[ftmp3] \n\t"
> @@ -1198,7 +1198,7 @@ void ff_h264_biweight_pixels16_8_mmi(uint8_t *dst, uint8_t *src,
>
> for (y=0; y<height; y++,="" dst+="stride," src+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[src0], 0x00)
> MMI_LDC1(%[ftmp2], %[dst0], 0x00)
> "mtc1 %[weights], %[ftmp3] \n\t"
> @@ -1271,7 +1271,7 @@ void ff_h264_weight_pixels8_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
>
> for (y=0; y<height; y++,="" block+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[block], 0x00)
> "mtc1 %[weight], %[ftmp2] \n\t"
> "mtc1 %[offset], %[ftmp3] \n\t"
> @@ -1312,7 +1312,7 @@ void ff_h264_biweight_pixels8_8_mmi(uint8_t *dst, uint8_t *src,
>
> for (y=0; y<height; y++,="" dst+="stride," src+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[src], 0x00)
> MMI_LDC1(%[ftmp2], %[dst], 0x00)
> "mtc1 %[weights], %[ftmp3] \n\t"
> @@ -1366,7 +1366,7 @@ void ff_h264_weight_pixels4_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
>
> for (y=0; y<height; y++,="" block+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_ULWC1(%[ftmp1], %[block], 0x00)
> "mtc1 %[weight], %[ftmp2] \n\t"
> "mtc1 %[offset], %[ftmp3] \n\t"
> @@ -1402,7 +1402,7 @@ void ff_h264_biweight_pixels4_8_mmi(uint8_t *dst, uint8_t *src,
>
> for (y=0; y<height; y++,="" dst+="stride," src+="stride)" {=""> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_ULWC1(%[ftmp1], %[src], 0x00)
> MMI_ULWC1(%[ftmp2], %[dst], 0x00)
> "mtc1 %[weight], %[ftmp3] \n\t"
> @@ -1445,7 +1445,7 @@ void ff_deblock_v8_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int bet
>
> __asm__ volatile (
> PTR_ADDU "%[addr0], %[stride], %[stride] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> PTR_ADDU "%[addr1], %[stride], %[addr0] \n\t"
> "addi %[alpha], %[alpha], -0x01 \n\t"
> PTR_SUBU "%[addr1], $0, %[addr1] \n\t"
> @@ -1463,18 +1463,18 @@ void ff_deblock_v8_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int bet
> "packushb %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp2] \n\t"
> "psubusb %[ftmp8], %[ftmp2], %[ftmp3] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "psubusb %[ftmp7], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp4] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp5], %[ftmp4], %[ftmp3] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "pcmpeqb %[ftmp8], %[ftmp8], %[ftmp0] \n\t"
> "pcmpeqb %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> MMI_ULWC1(%[ftmp5], %[tc0], 0x00)
> @@ -1482,21 +1482,21 @@ void ff_deblock_v8_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int bet
> "punpcklbh %[ftmp9], %[ftmp5], %[ftmp5] \n\t"
> "pcmpgtb %[ftmp5], %[ftmp9], %[ftmp4] \n\t"
> MMI_LDC1(%[ftmp4], %[addr1], 0x00)
> - "and %[ftmp10], %[ftmp5], %[ftmp8] \n\t"
> + "pand %[ftmp10], %[ftmp5], %[ftmp8] \n\t"
> "psubusb %[ftmp8], %[ftmp4], %[ftmp2] \n\t"
> "psubusb %[ftmp7], %[ftmp2], %[ftmp4] \n\t"
> "psubusb %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp7], %[ftmp7], %[ftmp8] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> - "and %[ftmp5], %[ftmp10], %[ftmp9] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pand %[ftmp5], %[ftmp10], %[ftmp9] \n\t"
> "psubb %[ftmp8], %[ftmp5], %[ftmp7] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> "pavgb %[ftmp5], %[ftmp2], %[ftmp3] \n\t"
> MMI_LDC1(%[ftmp11], %[addr1], 0x00)
> "pavgb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp11] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp11] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> "psubusb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> "psubusb %[ftmp5], %[ftmp1], %[ftmp7] \n\t"
> "paddusb %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> @@ -1509,26 +1509,26 @@ void ff_deblock_v8_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int bet
> "psubusb %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> "psubb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> - "and %[ftmp6], %[ftmp9], %[ftmp7] \n\t"
> + "pand %[ftmp6], %[ftmp9], %[ftmp7] \n\t"
> MMI_LDXC1(%[ftmp4], %[pix], %[stride], 0x00)
> "pavgb %[ftmp7], %[ftmp2], %[ftmp3] \n\t"
> MMI_LDXC1(%[ftmp11], %[pix], %[addr0], 0x00)
> "pavgb %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp11] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ff_pb_1] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp11] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ff_pb_1] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp7], %[ftmp4], %[ftmp6] \n\t"
> "paddusb %[ftmp6], %[ftmp6], %[ftmp4] \n\t"
> "pmaxub %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "pminub %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> MMI_SDXC1(%[ftmp5], %[pix], %[stride], 0x00)
> - "xor %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> + "pxor %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> "pcmpeqb %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ff_pb_1] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp2] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ff_pb_1] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp2] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ftmp1] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ff_pb_3] \n\t"
> "pavgb %[ftmp5], %[ftmp5], %[ftmp3] \n\t"
> @@ -1574,12 +1574,12 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
>
> __asm__ volatile (
> "ori %[tmp0], $0, 0x01 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp9] \n\t"
> PTR_SLL "%[addr0], %[stride], 0x02 \n\t"
> PTR_ADDU "%[addr2], %[stride], %[stride] \n\t"
> PTR_ADDIU "%[alpha], %[alpha], -0x01 \n\t"
> - PTR_SLL "%[ftmp11], %[ftmp9], %[ftmp9] \n\t"
> + "sslld %[ftmp11], %[ftmp9], %[ftmp9] \n\t"
> "bltz %[alpha], 1f \n\t"
> PTR_ADDU "%[addr1], %[addr2], %[stride] \n\t"
> PTR_ADDIU "%[beta], %[beta], -0x01 \n\t"
> @@ -1598,20 +1598,20 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> "psubusb %[ftmp7], %[ftmp3], %[ftmp2] \n\t"
> "psubusb %[ftmp8], %[ftmp2], %[ftmp3] \n\t"
> "packushb %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> MMI_SDC1(%[ftmp5], %[stack], 0x10)
> "psubusb %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp4] \n\t"
> "psubusb %[ftmp5], %[ftmp4], %[ftmp3] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> MMI_LDC1(%[ftmp5], %[stack], 0x10)
> "pcmpeqb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "ldc1 %[ftmp10], %[ff_pb_1] \n\t"
> @@ -1624,14 +1624,14 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> "psubusb %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> MMI_LDC1(%[ftmp15], %[stack], 0x20)
> "pcmpeqb %[ftmp7], %[ftmp7], %[ftmp8] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp15] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp15] \n\t"
> MMI_LDXC1(%[ftmp15], %[addr0], %[stride], 0x00)
> "psubusb %[ftmp8], %[ftmp15], %[ftmp2] \n\t"
> "psubusb %[ftmp5], %[ftmp2], %[ftmp15] \n\t"
> "psubusb %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp5], %[ftmp5], %[ftmp8] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> MMI_LDXC1(%[ftmp14], %[pix], %[addr2], 0x00)
> MMI_SDC1(%[ftmp5], %[stack], 0x30)
> "psubusb %[ftmp8], %[ftmp14], %[ftmp3] \n\t"
> @@ -1639,7 +1639,7 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> "psubusb %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp5], %[ftmp5], %[ftmp8] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> MMI_SDC1(%[ftmp5], %[stack], 0x40)
> "pavgb %[ftmp5], %[ftmp15], %[ftmp1] \n\t"
> "pavgb %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> @@ -1652,36 +1652,36 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> MMI_SDC1(%[ftmp7], %[stack], 0x00)
> "psrlh %[ftmp7], %[ftmp7], %[ftmp9] \n\t"
> "pavgb %[ftmp7], %[ftmp7], %[ftmp0] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> "psubb %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "pavgb %[ftmp6], %[ftmp15], %[ftmp4] \n\t"
> "psubb %[ftmp7], %[ftmp15], %[ftmp4] \n\t"
> "paddb %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> "psubb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> "psubb %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> MMI_LDC1(%[ftmp13], %[stack], 0x10)
> "pavgb %[ftmp6], %[ftmp6], %[ftmp1] \n\t"
> "psrlh %[ftmp8], %[ftmp8], %[ftmp11] \n\t"
> "pavgb %[ftmp6], %[ftmp6], %[ftmp13] \n\t"
> "pavgb %[ftmp8], %[ftmp8], %[ftmp0] \n\t"
> - "xor %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> - "and %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> + "pand %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> "psubb %[ftmp6], %[ftmp6], %[ftmp8] \n\t"
> - "xor %[ftmp8], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp8], %[ftmp2], %[ftmp4] \n\t"
> "pavgb %[ftmp7], %[ftmp2], %[ftmp4] \n\t"
> - "and %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> + "pand %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> "psubb %[ftmp7], %[ftmp7], %[ftmp8] \n\t"
> MMI_LDC1(%[ftmp13], %[stack], 0x30)
> "pavgb %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> MMI_LDC1(%[ftmp12], %[stack], 0x20)
> - "xor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp2] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ftmp13] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp12] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp2] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp2] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ftmp13] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp12] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp2] \n\t"
> MMI_SDXC1(%[ftmp6], %[addr0], %[addr1], 0x00)
> MMI_LDC1(%[ftmp6], %[addr0], 0x00)
> "paddb %[ftmp7], %[ftmp15], %[ftmp6] \n\t"
> @@ -1692,16 +1692,16 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> "paddb %[ftmp7], %[ftmp7], %[ftmp12] \n\t"
> "psrlh %[ftmp7], %[ftmp7], %[ftmp11] \n\t"
> "pavgb %[ftmp7], %[ftmp7], %[ftmp0] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> MMI_LDC1(%[ftmp12], %[stack], 0x30)
> "psubb %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp1] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp15] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ftmp12] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp1] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp15] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp1] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp15] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ftmp12] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp1] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp15] \n\t"
> MMI_SDXC1(%[ftmp5], %[addr0], %[addr2], 0x00)
> MMI_SDXC1(%[ftmp6], %[addr0], %[stride], 0x00)
> "pavgb %[ftmp5], %[ftmp14], %[ftmp4] \n\t"
> @@ -1715,36 +1715,36 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> MMI_SDC1(%[ftmp7], %[stack], 0x00)
> "psrlh %[ftmp7], %[ftmp7], %[ftmp9] \n\t"
> "pavgb %[ftmp7], %[ftmp7], %[ftmp0] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> "psubb %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "pavgb %[ftmp6], %[ftmp14], %[ftmp1] \n\t"
> "paddb %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> "psubb %[ftmp7], %[ftmp14], %[ftmp1] \n\t"
> "psubb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> "psubb %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> MMI_LDC1(%[ftmp12], %[stack], 0x10)
> "pavgb %[ftmp6], %[ftmp6], %[ftmp4] \n\t"
> "pavgb %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> "psrlh %[ftmp8], %[ftmp8], %[ftmp11] \n\t"
> "pavgb %[ftmp8], %[ftmp8], %[ftmp0] \n\t"
> - "xor %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> - "and %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp6] \n\t"
> + "pand %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> "psubb %[ftmp6], %[ftmp6], %[ftmp8] \n\t"
> - "xor %[ftmp8], %[ftmp3], %[ftmp1] \n\t"
> + "pxor %[ftmp8], %[ftmp3], %[ftmp1] \n\t"
> "pavgb %[ftmp7], %[ftmp3], %[ftmp1] \n\t"
> - "and %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> + "pand %[ftmp8], %[ftmp8], %[ftmp10] \n\t"
> MMI_LDC1(%[ftmp12], %[stack], 0x40)
> "psubb %[ftmp7], %[ftmp7], %[ftmp8] \n\t"
> MMI_LDC1(%[ftmp13], %[stack], 0x20)
> "pavgb %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp3] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp13] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp3] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp3] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp13] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp3] \n\t"
> MMI_SDC1(%[ftmp6], %[pix], 0x00)
> MMI_LDXC1(%[ftmp6], %[pix], %[addr1], 0x00)
> "paddb %[ftmp7], %[ftmp14], %[ftmp6] \n\t"
> @@ -1755,16 +1755,16 @@ static void deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alph
> "paddb %[ftmp7], %[ftmp7], %[ftmp12] \n\t"
> "psrlh %[ftmp7], %[ftmp7], %[ftmp11] \n\t"
> "pavgb %[ftmp7], %[ftmp7], %[ftmp0] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
> MMI_LDC1(%[ftmp12], %[stack], 0x40)
> "psubb %[ftmp6], %[ftmp6], %[ftmp7] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp4] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp14] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ftmp12] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp4] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp14] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp4] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp14] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ftmp12] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ftmp12] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp4] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp14] \n\t"
> MMI_SDXC1(%[ftmp5], %[pix], %[stride], 0x00)
> MMI_SDXC1(%[ftmp6], %[pix], %[addr2], 0x00)
> "1: \n\t"
> @@ -1808,7 +1808,7 @@ void ff_deblock_v_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> MMI_LDC1(%[ftmp3], %[pix], 0x00)
> MMI_LDXC1(%[ftmp4], %[pix], %[stride], 0x00)
>
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[alpha], %[ftmp5] \n\t"
> "mtc1 %[beta], %[ftmp6] \n\t"
> "pshufh %[ftmp5], %[ftmp5], %[ftmp0] \n\t"
> @@ -1817,29 +1817,29 @@ void ff_deblock_v_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> "packushb %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp2] \n\t"
> "psubusb %[ftmp8], %[ftmp2], %[ftmp3] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "psubusb %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp4] \n\t"
> "psubusb %[ftmp5], %[ftmp4], %[ftmp3] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "pcmpeqb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> MMI_ULWC1(%[ftmp7], %[tc0], 0x00)
> "punpcklbh %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> - "and %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> + "pand %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "pcmpeqb %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> - "xor %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "and %[ftmp6], %[ftmp6], %[ff_pb_1] \n\t"
> + "pxor %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[ff_pb_1] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ftmp1] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp2] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp2] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ff_pb_3] \n\t"
> "pavgb %[ftmp5], %[ftmp5], %[ftmp3] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> @@ -1891,7 +1891,7 @@ void ff_deblock_v_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> MMI_LDC1(%[ftmp3], %[pix], 0x00)
> MMI_LDXC1(%[ftmp4], %[pix], %[stride], 0x00)
>
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[alpha], %[ftmp5] \n\t"
> "mtc1 %[beta], %[ftmp6] \n\t"
> "pshufh %[ftmp5], %[ftmp5], %[ftmp0] \n\t"
> @@ -1900,36 +1900,36 @@ void ff_deblock_v_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> "packushb %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp2] \n\t"
> "psubusb %[ftmp8], %[ftmp2], %[ftmp3] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "psubusb %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> "psubusb %[ftmp7], %[ftmp3], %[ftmp4] \n\t"
> "psubusb %[ftmp5], %[ftmp4], %[ftmp3] \n\t"
> - "or %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> + "por %[ftmp5], %[ftmp5], %[ftmp7] \n\t"
> "psubusb %[ftmp5], %[ftmp5], %[ftmp6] \n\t"
> - "or %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "por %[ftmp8], %[ftmp8], %[ftmp5] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "pcmpeqb %[ftmp8], %[ftmp8], %[ftmp7] \n\t"
> "mov.d %[ftmp6], %[ftmp2] \n\t"
> "mov.d %[ftmp7], %[ftmp3] \n\t"
> - "xor %[ftmp5], %[ftmp2], %[ftmp4] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> + "pxor %[ftmp5], %[ftmp2], %[ftmp4] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> "pavgb %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> "psubusb %[ftmp2], %[ftmp2], %[ftmp5] \n\t"
> "pavgb %[ftmp2], %[ftmp2], %[ftmp1] \n\t"
> - "xor %[ftmp5], %[ftmp3], %[ftmp1] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> + "pxor %[ftmp5], %[ftmp3], %[ftmp1] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> "pavgb %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> "psubusb %[ftmp3], %[ftmp3], %[ftmp5] \n\t"
> "pavgb %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psubb %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> "psubb %[ftmp3], %[ftmp3], %[ftmp7] \n\t"
> - "and %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> - "and %[ftmp3], %[ftmp3], %[ftmp8] \n\t"
> + "pand %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pand %[ftmp3], %[ftmp3], %[ftmp8] \n\t"
> "paddb %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> "paddb %[ftmp3], %[ftmp3], %[ftmp7] \n\t"
>
> @@ -1996,7 +1996,7 @@ void ff_deblock_h_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int be
> "mov.d %[ftmp9], %[ftmp0] \n\t"
> "mov.d %[ftmp10], %[ftmp3] \n\t"
>
> - "xor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> "mtc1 %[alpha], %[ftmp4] \n\t"
> "mtc1 %[beta], %[ftmp5] \n\t"
> "pshufh %[ftmp4], %[ftmp4], %[ftmp8] \n\t"
> @@ -2005,29 +2005,29 @@ void ff_deblock_h_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int be
> "packushb %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> "psubusb %[ftmp6], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp7], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> "psubusb %[ftmp6], %[ftmp1], %[ftmp0] \n\t"
> "psubusb %[ftmp4], %[ftmp0], %[ftmp1] \n\t"
> - "or %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> + "por %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> "psubusb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> "psubusb %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> "psubusb %[ftmp4], %[ftmp3], %[ftmp2] \n\t"
> - "or %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> + "por %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> "psubusb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> MMI_ULWC1(%[ftmp6], %[tc0], 0x00)
> "punpcklbh %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> - "and %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> - "xor %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> - "and %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> + "pxor %[ftmp5], %[ftmp1], %[ftmp2] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[ff_pb_1] \n\t"
> "pavgb %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp1] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp1] \n\t"
> "pavgb %[ftmp3], %[ftmp3], %[ff_pb_3] \n\t"
> "pavgb %[ftmp4], %[ftmp4], %[ftmp2] \n\t"
> "pavgb %[ftmp3], %[ftmp3], %[ftmp5] \n\t"
> @@ -2134,7 +2134,7 @@ void ff_deblock_h_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> "punpcklwd %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> "punpcklwd %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
>
> - "xor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> "mtc1 %[alpha], %[ftmp4] \n\t"
> "mtc1 %[beta], %[ftmp5] \n\t"
> "pshufh %[ftmp4], %[ftmp4], %[ftmp8] \n\t"
> @@ -2143,36 +2143,36 @@ void ff_deblock_h_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
> "packushb %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> "psubusb %[ftmp6], %[ftmp2], %[ftmp1] \n\t"
> "psubusb %[ftmp7], %[ftmp1], %[ftmp2] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "psubusb %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> "psubusb %[ftmp6], %[ftmp1], %[ftmp0] \n\t"
> "psubusb %[ftmp4], %[ftmp0], %[ftmp1] \n\t"
> - "or %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> + "por %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> "psubusb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> "psubusb %[ftmp6], %[ftmp2], %[ftmp3] \n\t"
> "psubusb %[ftmp4], %[ftmp3], %[ftmp2] \n\t"
> - "or %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> + "por %[ftmp4], %[ftmp4], %[ftmp6] \n\t"
> "psubusb %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "or %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> + "por %[ftmp7], %[ftmp7], %[ftmp4] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "pcmpeqb %[ftmp7], %[ftmp7], %[ftmp6] \n\t"
> "mov.d %[ftmp5], %[ftmp1] \n\t"
> "mov.d %[ftmp6], %[ftmp2] \n\t"
> - "xor %[ftmp4], %[ftmp1], %[ftmp3] \n\t"
> - "and %[ftmp4], %[ftmp4], %[ff_pb_1] \n\t"
> + "pxor %[ftmp4], %[ftmp1], %[ftmp3] \n\t"
> + "pand %[ftmp4], %[ftmp4], %[ff_pb_1] \n\t"
> "pavgb %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> "psubusb %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> "pavgb %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> - "xor %[ftmp4], %[ftmp2], %[ftmp0] \n\t"
> - "and %[ftmp4], %[ftmp4], %[ff_pb_1] \n\t"
> + "pxor %[ftmp4], %[ftmp2], %[ftmp0] \n\t"
> + "pand %[ftmp4], %[ftmp4], %[ff_pb_1] \n\t"
> "pavgb %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "psubusb %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> "pavgb %[ftmp2], %[ftmp2], %[ftmp3] \n\t"
> "psubb %[ftmp1], %[ftmp1], %[ftmp5] \n\t"
> "psubb %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> - "and %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> - "and %[ftmp2], %[ftmp2], %[ftmp7] \n\t"
> + "pand %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> + "pand %[ftmp2], %[ftmp2], %[ftmp7] \n\t"
> "paddb %[ftmp1], %[ftmp1], %[ftmp5] \n\t"
> "paddb %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
>
> diff --git a/libavcodec/mips/h264pred_mmi.c b/libavcodec/mips/h264pred_mmi.c
> index 0209c2e..f8947a0 100644
> --- a/libavcodec/mips/h264pred_mmi.c
> +++ b/libavcodec/mips/h264pred_mmi.c
> @@ -162,7 +162,7 @@ void ff_pred8x8l_top_dc_8_mmi(uint8_t *src, int has_topleft,
> DECLARE_VAR_ADDRT;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_ULDC1(%[ftmp10], %[srcA], 0x00)
> MMI_ULDC1(%[ftmp9], %[src0], 0x00)
> MMI_ULDC1(%[ftmp8], %[src1], 0x00)
> @@ -266,7 +266,7 @@ void ff_pred8x8l_dc_8_mmi(uint8_t *src, int has_topleft, int has_topright,
> MMI_ULDC1(%[ftmp4], %[srcA], 0x00)
> MMI_ULDC1(%[ftmp5], %[src0], 0x00)
> MMI_ULDC1(%[ftmp6], %[src1], 0x00)
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x03 \n\t"
> "punpcklbh %[ftmp7], %[ftmp4], %[ftmp0] \n\t"
> "punpckhbh %[ftmp8], %[ftmp4], %[ftmp0] \n\t"
> @@ -357,7 +357,7 @@ void ff_pred8x8l_vertical_8_mmi(uint8_t *src, int has_topleft,
> DECLARE_VAR_ALL64;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp3], %[srcA], 0x00)
> MMI_LDC1(%[ftmp4], %[src0], 0x00)
> MMI_LDC1(%[ftmp5], %[src1], 0x00)
> @@ -530,7 +530,7 @@ void ff_pred8x8_top_dc_8_mmi(uint8_t *src, ptrdiff_t stride)
>
> __asm__ volatile (
> "dli %[tmp0], 0x02 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> PTR_SUBU "%[addr0], %[src], %[stride] \n\t"
> MMI_LDC1(%[ftmp1], %[addr0], 0x00)
> "punpcklbh %[ftmp2], %[ftmp1], %[ftmp0] \n\t"
> @@ -640,7 +640,7 @@ void ff_pred8x8_dc_8_mmi(uint8_t *src, ptrdiff_t stride)
> PTR_SRL "%[addr4], 0x02 \n\t"
> PTR_SRL "%[addr1], 0x02 \n\t"
> PTR_SRL "%[addr2], 0x03 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dmtc1 %[addr3], %[ftmp1] \n\t"
> "pshufh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "dmtc1 %[addr4], %[ftmp2] \n\t"
> @@ -757,9 +757,9 @@ static inline void pred16x16_plane_compat_mmi(uint8_t *src, int stride,
> "dmtc1 %[tmp0], %[ftmp4] \n\t"
> MMI_ULDC1(%[ftmp0], %[addr0], -0x01)
> MMI_ULDC1(%[ftmp2], %[addr0], 0x08)
> - "dsrl %[ftmp1], %[ftmp0], %[ftmp4] \n\t"
> - "dsrl %[ftmp3], %[ftmp2], %[ftmp4] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> + "ssrld %[ftmp1], %[ftmp0], %[ftmp4] \n\t"
> + "ssrld %[ftmp3], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> "punpcklbh %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> "punpcklbh %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> @@ -915,7 +915,7 @@ static inline void pred16x16_plane_compat_mmi(uint8_t *src, int stride,
> "dmul %[tmp3], %[tmp3], %[tmp2] \n\t"
> "dsubu %[tmp5], %[tmp5], %[tmp3] \n\t"
>
> - "xor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> "dmtc1 %[tmp0], %[ftmp0] \n\t"
> "pshufh %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> "dmtc1 %[tmp1], %[ftmp5] \n\t"
> diff --git a/libavcodec/mips/h264qpel_mmi.c b/libavcodec/mips/h264qpel_mmi.c
> index 13fbebf..72362d3 100644
> --- a/libavcodec/mips/h264qpel_mmi.c
> +++ b/libavcodec/mips/h264qpel_mmi.c
> @@ -114,7 +114,7 @@ static void put_h264_qpel4_h_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> DECLARE_VAR_LOW32;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x04 \n\t"
> "1: \n\t"
> MMI_ULWC1(%[ftmp1], %[src], -0x02)
> @@ -169,7 +169,7 @@ static void put_h264_qpel8_h_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> DECLARE_VAR_ALL64;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x08 \n\t"
> "1: \n\t"
> MMI_ULDC1(%[ftmp1], %[src], -0x02)
> @@ -250,7 +250,7 @@ static void avg_h264_qpel4_h_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> DECLARE_VAR_LOW32;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x04 \n\t"
> "1: \n\t"
> MMI_ULWC1(%[ftmp1], %[src], -0x02)
> @@ -307,7 +307,7 @@ static void avg_h264_qpel8_h_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> DECLARE_VAR_ALL64;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x08 \n\t"
> "1: \n\t"
> MMI_ULDC1(%[ftmp1], %[src], -0x02)
> @@ -394,7 +394,7 @@ static void put_h264_qpel4_v_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> __asm__ volatile (
> ".set push \n\t"
> ".set noreorder \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x02 \n\t"
> MMI_LWC1(%[ftmp1], %[src], 0x00)
> "mtc1 %[tmp0], %[ftmp10] \n\t"
> @@ -516,7 +516,7 @@ static void put_h264_qpel8_v_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> PTR_ADDU "%[src], %[src], %[srcStride] \n\t"
> MMI_LWC1(%[ftmp2], %[src], 0x00)
> PTR_ADDU "%[src], %[src], %[srcStride] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> MMI_LWC1(%[ftmp3], %[src], 0x00)
> PTR_ADDU "%[src], %[src], %[srcStride] \n\t"
> MMI_LWC1(%[ftmp4], %[src], 0x00)
> @@ -812,7 +812,7 @@ static void avg_h264_qpel4_v_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> ".set push \n\t"
> ".set noreorder \n\t"
> "dli %[tmp0], 0x02 \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "mtc1 %[tmp0], %[ftmp9] \n\t"
> "dli %[tmp0], 0x05 \n\t"
> MMI_LWC1(%[ftmp0], %[src], 0x00)
> @@ -930,7 +930,7 @@ static void avg_h264_qpel8_v_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> ".set push \n\t"
> ".set noreorder \n\t"
> "dli %[tmp0], 0x02 \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "mtc1 %[tmp0], %[ftmp9] \n\t"
> "dli %[tmp0], 0x05 \n\t"
> MMI_LWC1(%[ftmp0], %[src], 0x00)
> @@ -1269,7 +1269,7 @@ static void put_h264_qpel4_hv_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> src -= 2*srcStride;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x09 \n\t"
> "1: \n\t"
> MMI_ULWC1(%[ftmp1], %[src], -0x02)
> @@ -1347,7 +1347,7 @@ static void put_h264_qpel8or16_hv1_lowpass_mmi(int16_t *tmp,
> MMI_ULWC1(%[ftmp0], %[src], 0x00)
> "mtc1 %[tmp0], %[ftmp10] \n\t"
> PTR_ADDU "%[src], %[src], %[srcStride] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> MMI_ULWC1(%[ftmp1], %[src], 0x00)
> PTR_ADDU "%[src], %[src], %[srcStride] \n\t"
> MMI_ULWC1(%[ftmp2], %[src], 0x00)
> @@ -1684,7 +1684,7 @@ static void put_h264_qpel8_h_lowpass_l2_mmi(uint8_t *dst, const uint8_t *src,
> "dli %[tmp0], 0x02 \n\t"
> "mtc1 %[tmp0], %[ftmp7] \n\t"
> "dli %[tmp0], 0x05 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp8] \n\t"
> "1: \n\t"
> MMI_ULDC1(%[ftmp1], %[src], 0x00)
> @@ -1833,7 +1833,7 @@ static void avg_h264_qpel4_hv_lowpass_mmi(uint8_t *dst, const uint8_t *src,
> src -= 2*srcStride;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "dli %[tmp0], 0x09 \n\t"
> "1: \n\t"
> MMI_ULWC1(%[ftmp1], %[src], -0x02)
> @@ -2005,7 +2005,7 @@ static void avg_h264_qpel8_h_lowpass_l2_mmi(uint8_t *dst, const uint8_t *src,
> "ori %[tmp0], $0, 0x8 \n\t"
> "mtc1 %[tmp1], %[ftmp7] \n\t"
> "dli %[tmp1], 0x05 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp1], %[ftmp8] \n\t"
> "1: \n\t"
> MMI_ULDC1(%[ftmp1], %[src], 0x00)
> diff --git a/libavcodec/mips/hevcdsp_mmi.c b/libavcodec/mips/hevcdsp_mmi.c
> index aa83e1f..e89d37e 100644
> --- a/libavcodec/mips/hevcdsp_mmi.c
> +++ b/libavcodec/mips/hevcdsp_mmi.c
> @@ -46,7 +46,7 @@ void ff_hevc_put_hevc_qpel_h##w##_8_mmi(int16_t *dst, uint8_t *_src, \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> "psrah %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> \
> "1: \n\t" \
> "2: \n\t" \
> @@ -147,7 +147,7 @@ void ff_hevc_put_hevc_qpel_hv##w##_8_mmi(int16_t *dst, uint8_t *_src, \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> "psrah %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> \
> "1: \n\t" \
> "2: \n\t" \
> @@ -344,7 +344,7 @@ void ff_hevc_put_hevc_qpel_bi_h##w##_8_mmi(uint8_t *_dst, \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> "psrah %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> "punpcklhw %[offset], %[offset], %[offset] \n\t" \
> "punpcklwd %[offset], %[offset], %[offset] \n\t" \
> \
> @@ -403,7 +403,7 @@ void ff_hevc_put_hevc_qpel_bi_h##w##_8_mmi(uint8_t *_dst, \
> "psraw %[ftmp6], %[ftmp6], %[shift] \n\t" \
> "packsswh %[ftmp5], %[ftmp5], %[ftmp6] \n\t" \
> "pcmpgth %[ftmp7], %[ftmp5], %[ftmp0] \n\t" \
> - "and %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> + "pand %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> "packushb %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> "gsswlc1 %[ftmp3], 0x03(%[dst]) \n\t" \
> "gsswrc1 %[ftmp3], 0x00(%[dst]) \n\t" \
> @@ -480,7 +480,7 @@ void ff_hevc_put_hevc_qpel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> "psrah %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> \
> "1: \n\t" \
> "2: \n\t" \
> @@ -612,7 +612,7 @@ void ff_hevc_put_hevc_qpel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "packsswh %[ftmp3], %[ftmp3], %[ftmp5] \n\t" \
> "gsldlc1 %[ftmp4], 0x07(%[src2]) \n\t" \
> "gsldrc1 %[ftmp4], 0x00(%[src2]) \n\t" \
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t" \
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t" \
> "li %[rtmp0], 0x10 \n\t" \
> "dmtc1 %[rtmp0], %[ftmp8] \n\t" \
> "punpcklhw %[ftmp5], %[ftmp7], %[ftmp3] \n\t" \
> @@ -631,7 +631,7 @@ void ff_hevc_put_hevc_qpel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "psraw %[ftmp6], %[ftmp6], %[shift] \n\t" \
> "packsswh %[ftmp5], %[ftmp5], %[ftmp6] \n\t" \
> "pcmpgth %[ftmp7], %[ftmp5], %[ftmp7] \n\t" \
> - "and %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> + "pand %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> "packushb %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> "gsswlc1 %[ftmp3], 0x03(%[dst]) \n\t" \
> "gsswrc1 %[ftmp3], 0x00(%[dst]) \n\t" \
> @@ -706,7 +706,7 @@ void ff_hevc_put_hevc_epel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "dmtc1 %[rtmp0], %[ftmp0] \n\t" \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> \
> "1: \n\t" \
> "2: \n\t" \
> @@ -771,7 +771,7 @@ void ff_hevc_put_hevc_epel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "li %[rtmp0], 0x06 \n\t" \
> "dmtc1 %[rtmp0], %[ftmp0] \n\t" \
> "punpcklwd %[offset], %[offset], %[offset] \n\t" \
> - "xor %[ftmp2], %[ftmp2], %[ftmp2] \n\t" \
> + "pxor %[ftmp2], %[ftmp2], %[ftmp2] \n\t" \
> \
> "1: \n\t" \
> "li %[x], " #x_step " \n\t" \
> @@ -821,7 +821,7 @@ void ff_hevc_put_hevc_epel_bi_hv##w##_8_mmi(uint8_t *_dst, \
> "psraw %[ftmp6], %[ftmp6], %[shift] \n\t" \
> "packsswh %[ftmp5], %[ftmp5], %[ftmp6] \n\t" \
> "pcmpgth %[ftmp7], %[ftmp5], %[ftmp2] \n\t" \
> - "and %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> + "pand %[ftmp3], %[ftmp5], %[ftmp7] \n\t" \
> "packushb %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> "gsswlc1 %[ftmp3], 0x03(%[dst]) \n\t" \
> "gsswrc1 %[ftmp3], 0x00(%[dst]) \n\t" \
> @@ -882,7 +882,7 @@ void ff_hevc_put_hevc_pel_bi_pixels##w##_8_mmi(uint8_t *_dst, \
> y = height; \
> x = width >> 3; \
> __asm__ volatile( \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> "li %[rtmp0], 0x06 \n\t" \
> "dmtc1 %[rtmp0], %[ftmp1] \n\t" \
> "li %[rtmp0], 0x10 \n\t" \
> @@ -930,8 +930,8 @@ void ff_hevc_put_hevc_pel_bi_pixels##w##_8_mmi(uint8_t *_dst, \
> "packsswh %[ftmp4], %[ftmp4], %[ftmp5] \n\t" \
> "pcmpgth %[ftmp3], %[ftmp2], %[ftmp0] \n\t" \
> "pcmpgth %[ftmp5], %[ftmp4], %[ftmp0] \n\t" \
> - "and %[ftmp2], %[ftmp2], %[ftmp3] \n\t" \
> - "and %[ftmp4], %[ftmp4], %[ftmp5] \n\t" \
> + "pand %[ftmp2], %[ftmp2], %[ftmp3] \n\t" \
> + "pand %[ftmp4], %[ftmp4], %[ftmp5] \n\t" \
> "packushb %[ftmp2], %[ftmp2], %[ftmp4] \n\t" \
> "gssdlc1 %[ftmp2], 0x07(%[dst]) \n\t" \
> "gssdrc1 %[ftmp2], 0x00(%[dst]) \n\t" \
> @@ -1006,7 +1006,7 @@ void ff_hevc_put_hevc_qpel_uni_hv##w##_8_mmi(uint8_t *_dst, \
> "punpcklbh %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> "psrah %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
> "psrah %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> \
> "1: \n\t" \
> "2: \n\t" \
> @@ -1139,9 +1139,9 @@ void ff_hevc_put_hevc_qpel_uni_hv##w##_8_mmi(uint8_t *_dst, \
> "packsswh %[ftmp3], %[ftmp3], %[ftmp5] \n\t" \
> "paddh %[ftmp3], %[ftmp3], %[offset] \n\t" \
> "psrah %[ftmp3], %[ftmp3], %[shift] \n\t" \
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t" \
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t" \
> "pcmpgth %[ftmp7], %[ftmp3], %[ftmp7] \n\t" \
> - "and %[ftmp3], %[ftmp3], %[ftmp7] \n\t" \
> + "pand %[ftmp3], %[ftmp3], %[ftmp7] \n\t" \
> "packushb %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> "gsswlc1 %[ftmp3], 0x03(%[dst]) \n\t" \
> "gsswrc1 %[ftmp3], 0x00(%[dst]) \n\t" \
> diff --git a/libavcodec/mips/hpeldsp_mmi.c b/libavcodec/mips/hpeldsp_mmi.c
> index e69b2bd..bf3e463 100644
> --- a/libavcodec/mips/hpeldsp_mmi.c
> +++ b/libavcodec/mips/hpeldsp_mmi.c
> @@ -676,14 +676,14 @@ inline void ff_put_no_rnd_pixels8_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
> PTR_ADDU "%[addr1], %[src2], %[src_stride2] \n\t"
> MMI_ULDC1(%[ftmp3], %[addr1], 0x00)
> PTR_ADDU "%[src1], %[src1], %[addr2] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "pavgb %[ftmp0], %[ftmp0], %[ftmp2] \n\t"
> "pavgb %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> MMI_SDC1(%[ftmp0], %[dst], 0x00)
> MMI_SDXC1(%[ftmp1], %[dst], %[dst_stride], 0x00)
> PTR_ADDU "%[src2], %[src2], %[addr3] \n\t"
> @@ -696,14 +696,14 @@ inline void ff_put_no_rnd_pixels8_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
> PTR_ADDU "%[addr1], %[src2], %[src_stride2] \n\t"
> MMI_ULDC1(%[ftmp3], %[addr1], 0x00)
> PTR_ADDU "%[src1], %[src1], %[addr2] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "pavgb %[ftmp0], %[ftmp0], %[ftmp2] \n\t"
> "pavgb %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> MMI_SDC1(%[ftmp0], %[dst], 0x00)
> MMI_SDXC1(%[ftmp1], %[dst], %[dst_stride], 0x00)
> PTR_ADDU "%[src2], %[src2], %[addr3] \n\t"
> @@ -846,7 +846,7 @@ void ff_put_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
> DECLARE_VAR_ADDRT;
>
> __asm__ volatile (
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "dli %[addr0], 0x0f \n\t"
> "pcmpeqw %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "dmtc1 %[addr0], %[ftmp8] \n\t"
> diff --git a/libavcodec/mips/idctdsp_mmi.c b/libavcodec/mips/idctdsp_mmi.c
> index a96dac4..0047aef 100644
> --- a/libavcodec/mips/idctdsp_mmi.c
> +++ b/libavcodec/mips/idctdsp_mmi.c
> @@ -154,7 +154,7 @@ void ff_add_pixels_clamped_mmi(const int16_t *block,
> uint64_t tmp[1];
> __asm__ volatile (
> "li %[tmp0], 0x04 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "1: \n\t"
> MMI_LDC1(%[ftmp5], %[pixels], 0x00)
> PTR_ADDU "%[pixels], %[pixels], %[line_size] \n\t"
> diff --git a/libavcodec/mips/mpegvideo_mmi.c b/libavcodec/mips/mpegvideo_mmi.c
> index e4aba08..edaa839 100644
> --- a/libavcodec/mips/mpegvideo_mmi.c
> +++ b/libavcodec/mips/mpegvideo_mmi.c
> @@ -53,13 +53,13 @@ void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block,
> nCoeffs = s->inter_scantable.raster_end[s->block_last_index[n]];
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "packsswh %[qmul], %[qmul], %[qmul] \n\t"
> "packsswh %[qmul], %[qmul], %[qmul] \n\t"
> "packsswh %[qadd], %[qadd], %[qadd] \n\t"
> "packsswh %[qadd], %[qadd], %[qadd] \n\t"
> "psubh %[ftmp0], %[ftmp0], %[qadd] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> ".p2align 4 \n\t"
>
> "1: \n\t"
> @@ -72,12 +72,12 @@ void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block,
> "pmullh %[ftmp2], %[ftmp2], %[qmul] \n\t"
> "pcmpgth %[ftmp3], %[ftmp3], %[ftmp5] \n\t"
> "pcmpgth %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> "paddh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "paddh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp2] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp2] \n\t"
> "pcmpeqh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "pcmpeqh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "pandn %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> @@ -116,11 +116,11 @@ void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block,
> __asm__ volatile (
> "packsswh %[qmul], %[qmul], %[qmul] \n\t"
> "packsswh %[qmul], %[qmul], %[qmul] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "packsswh %[qadd], %[qadd], %[qadd] \n\t"
> "packsswh %[qadd], %[qadd], %[qadd] \n\t"
> "psubh %[ftmp0], %[ftmp0], %[qadd] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> ".p2align 4 \n\t"
> "1: \n\t"
> PTR_ADDU "%[addr0], %[block], %[nCoeffs] \n\t"
> @@ -132,12 +132,12 @@ void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block,
> "pmullh %[ftmp2], %[ftmp2], %[qmul] \n\t"
> "pcmpgth %[ftmp3], %[ftmp3], %[ftmp5] \n\t"
> "pcmpgth %[ftmp4], %[ftmp4], %[ftmp5] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> "paddh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "paddh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp2] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp1] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp2] \n\t"
> "pcmpeqh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "pcmpeqh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "pandn %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> @@ -201,18 +201,18 @@ void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block,
> MMI_LDXC1(%[ftmp7], %[addr0], %[quant], 0x08)
> "pmullh %[ftmp6], %[ftmp6], %[ftmp1] \n\t"
> "pmullh %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> - "xor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> - "xor %[ftmp9], %[ftmp9], %[ftmp9] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> + "pxor %[ftmp9], %[ftmp9], %[ftmp9] \n\t"
> "pcmpgth %[ftmp8], %[ftmp8], %[ftmp2] \n\t"
> "pcmpgth %[ftmp9], %[ftmp9], %[ftmp3] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "pmullh %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> "pmullh %[ftmp3], %[ftmp3], %[ftmp7] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "pcmpeqh %[ftmp6], %[ftmp6], %[ftmp4] \n\t"
> "dli %[tmp0], 0x03 \n\t"
> "pcmpeqh %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> @@ -221,10 +221,10 @@ void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block,
> "psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> - "or %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> - "or %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "por %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> + "por %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "pandn %[ftmp6], %[ftmp6], %[ftmp2] \n\t"
> @@ -287,12 +287,12 @@ void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block,
> MMI_LDXC1(%[ftmp7], %[addr0], %[quant], 0x08)
> "pmullh %[ftmp6], %[ftmp6], %[ftmp1] \n\t"
> "pmullh %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> - "xor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> - "xor %[ftmp9], %[ftmp9], %[ftmp9] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> + "pxor %[ftmp9], %[ftmp9], %[ftmp9] \n\t"
> "pcmpgth %[ftmp8], %[ftmp8], %[ftmp2] \n\t"
> "pcmpgth %[ftmp9], %[ftmp9], %[ftmp3] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "paddh %[ftmp2], %[ftmp2], %[ftmp2] \n\t"
> @@ -301,8 +301,8 @@ void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block,
> "paddh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> "pmullh %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> "pmullh %[ftmp3], %[ftmp3], %[ftmp7] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> "pcmpeqh %[ftmp6], %[ftmp6], %[ftmp4] \n\t"
> "dli %[tmp0], 0x04 \n\t"
> "pcmpeqh %[ftmp7], %[ftmp7], %[ftmp5] \n\t"
> @@ -311,10 +311,10 @@ void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block,
> "psrah %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> - "or %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> - "or %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> + "por %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> + "por %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp9] \n\t"
> "pandn %[ftmp6], %[ftmp6], %[ftmp2] \n\t"
> @@ -386,26 +386,26 @@ void ff_dct_unquantize_mpeg2_intra_mmi(MpegEncContext *s, int16_t *block,
> MMI_LDXC1(%[ftmp6], %[addr0], %[quant], 0x08)
> "pmullh %[ftmp5], %[ftmp5], %[ftmp9] \n\t"
> "pmullh %[ftmp6], %[ftmp6], %[ftmp9] \n\t"
> - "xor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> - "xor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> + "pxor %[ftmp7], %[ftmp7], %[ftmp7] \n\t"
> + "pxor %[ftmp8], %[ftmp8], %[ftmp8] \n\t"
> "pcmpgth %[ftmp7], %[ftmp7], %[ftmp1] \n\t"
> "pcmpgth %[ftmp8], %[ftmp8], %[ftmp2] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "pmullh %[ftmp1], %[ftmp1], %[ftmp5] \n\t"
> "pmullh %[ftmp2], %[ftmp2], %[ftmp6] \n\t"
> - "xor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> - "xor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> + "pxor %[ftmp5], %[ftmp5], %[ftmp5] \n\t"
> + "pxor %[ftmp6], %[ftmp6], %[ftmp6] \n\t"
> "pcmpeqh %[ftmp5], %[ftmp5], %[ftmp3] \n\t"
> "dli %[tmp0], 0x03 \n\t"
> "pcmpeqh %[ftmp6] , %[ftmp6], %[ftmp4] \n\t"
> "mtc1 %[tmp0], %[ftmp3] \n\t"
> "psrah %[ftmp1], %[ftmp1], %[ftmp3] \n\t"
> "psrah %[ftmp2], %[ftmp2], %[ftmp3] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> - "xor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "psubh %[ftmp1], %[ftmp1], %[ftmp7] \n\t"
> "psubh %[ftmp2], %[ftmp2], %[ftmp8] \n\t"
> "pandn %[ftmp5], %[ftmp5], %[ftmp1] \n\t"
> @@ -445,16 +445,16 @@ void ff_denoise_dct_mmi(MpegEncContext *s, int16_t *block)
> s->dct_count[intra]++;
>
> __asm__ volatile(
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "1: \n\t"
> MMI_LDC1(%[ftmp1], %[block], 0x00)
> - "xor %[ftmp2], %[ftmp2], %[ftmp2] \n\t"
> + "pxor %[ftmp2], %[ftmp2], %[ftmp2] \n\t"
> MMI_LDC1(%[ftmp3], %[block], 0x08)
> - "xor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> "pcmpgth %[ftmp2], %[ftmp2], %[ftmp1] \n\t"
> "pcmpgth %[ftmp4], %[ftmp4], %[ftmp3] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psubh %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> MMI_LDC1(%[ftmp6], %[offset], 0x00)
> @@ -463,8 +463,8 @@ void ff_denoise_dct_mmi(MpegEncContext *s, int16_t *block)
> MMI_LDC1(%[ftmp6], %[offset], 0x08)
> "mov.d %[ftmp7], %[ftmp3] \n\t"
> "psubush %[ftmp3], %[ftmp3], %[ftmp6] \n\t"
> - "xor %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> - "xor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pxor %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> + "pxor %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psubh %[ftmp1], %[ftmp1], %[ftmp2] \n\t"
> "psubh %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> MMI_SDC1(%[ftmp1], %[block], 0x00)
> diff --git a/libavcodec/mips/pixblockdsp_mmi.c b/libavcodec/mips/pixblockdsp_mmi.c
> index a915a3c..1230f5d 100644
> --- a/libavcodec/mips/pixblockdsp_mmi.c
> +++ b/libavcodec/mips/pixblockdsp_mmi.c
> @@ -33,7 +33,7 @@ void ff_get_pixels_8_mmi(int16_t *av_restrict block, const uint8_t *pixels,
> DECLARE_VAR_ADDRT;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
>
> MMI_LDC1(%[ftmp1], %[pixels], 0x00)
> MMI_LDXC1(%[ftmp2], %[pixels], %[stride], 0x00)
> @@ -103,12 +103,12 @@ void ff_diff_pixels_mmi(int16_t *av_restrict block, const uint8_t *src1,
>
> __asm__ volatile (
> "li %[tmp0], 0x08 \n\t"
> - "xor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> + "pxor %[ftmp4], %[ftmp4], %[ftmp4] \n\t"
> "1: \n\t"
> MMI_LDC1(%[ftmp0], %[src1], 0x00)
> - "or %[ftmp1], %[ftmp0], %[ftmp0] \n\t"
> + "por %[ftmp1], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp2], %[src2], 0x00)
> - "or %[ftmp3], %[ftmp2], %[ftmp2] \n\t"
> + "por %[ftmp3], %[ftmp2], %[ftmp2] \n\t"
> "punpcklbh %[ftmp0], %[ftmp0], %[ftmp4] \n\t"
> "punpckhbh %[ftmp1], %[ftmp1], %[ftmp4] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp4] \n\t"
> diff --git a/libavcodec/mips/simple_idct_mmi.c b/libavcodec/mips/simple_idct_mmi.c
> index e4b58dc..ad068a8 100644
> --- a/libavcodec/mips/simple_idct_mmi.c
> +++ b/libavcodec/mips/simple_idct_mmi.c
> @@ -133,7 +133,7 @@ void ff_simple_idct_8_mmi(int16_t *block)
> "psllh $f28, "#src1", $f30 \n\t" \
> "dmtc1 $9, $f31 \n\t" \
> "punpcklhw $f29, $f28, $f28 \n\t" \
> - "and $f29, $f29, $f31 \n\t" \
> + "pand $f29, $f29, $f31 \n\t" \
> "paddw $f28, $f28, $f29 \n\t" \
> "punpcklwd "#src1", $f28, $f28 \n\t" \
> "punpcklwd "#src2", $f28, $f28 \n\t" \
> @@ -268,9 +268,9 @@ void ff_simple_idct_8_mmi(int16_t *block)
> "punpcklwd $f8, $f27, $f29 \n\t"
> "punpckhwd $f12, $f27, $f29 \n\t"
>
> - "or $f26, $f2, $f6 \n\t"
> - "or $f26, $f26, $f10 \n\t"
> - "or $f26, $f26, $f14 \n\t"
> + "por $f26, $f2, $f6 \n\t"
> + "por $f26, $f26, $f10 \n\t"
> + "por $f26, $f26, $f14 \n\t"
> "dmfc1 $10, $f26 \n\t"
> "bnez $10, 1f \n\t"
> /* case1: In this case, row[1,3,5,7] are all zero */
> @@ -338,9 +338,9 @@ void ff_simple_idct_8_mmi(int16_t *block)
> "punpcklwd $f9, $f27, $f29 \n\t"
> "punpckhwd $f13, $f27, $f29 \n\t"
>
> - "or $f26, $f3, $f7 \n\t"
> - "or $f26, $f26, $f11 \n\t"
> - "or $f26, $f26, $f15 \n\t"
> + "por $f26, $f3, $f7 \n\t"
> + "por $f26, $f26, $f11 \n\t"
> + "por $f26, $f26, $f15 \n\t"
> "dmfc1 $10, $f26 \n\t"
> "bnez $10, 1f \n\t"
> /* case1: In this case, row[1,3,5,7] are all zero */
> diff --git a/libavcodec/mips/vc1dsp_mmi.c b/libavcodec/mips/vc1dsp_mmi.c
> index 348ecd2..a8ab3f6 100644
> --- a/libavcodec/mips/vc1dsp_mmi.c
> +++ b/libavcodec/mips/vc1dsp_mmi.c
> @@ -134,7 +134,7 @@ void ff_vc1_inv_trans_8x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *blo
> dc = (3 * dc + 16) >> 5;
>
> __asm__ volatile(
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[dc], %[dc], %[ftmp0] \n\t"
> "li %[count], 0x02 \n\t"
>
> @@ -425,7 +425,7 @@ void ff_vc1_inv_trans_8x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *blo
> dc = (17 * dc + 64) >> 7;
>
> __asm__ volatile(
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[dc], %[dc], %[ftmp0] \n\t"
>
> MMI_LDC1(%[ftmp1], %[dest0], 0x00)
> @@ -705,7 +705,7 @@ void ff_vc1_inv_trans_8x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
> MMI_LWC1(%[ftmp3], %[tmp0], 0x00)
> PTR_ADDU "%[tmp0], %[tmp0], %[linesize] \n\t"
> MMI_LWC1(%[ftmp4], %[tmp0], 0x00)
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "punpcklbh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "punpcklbh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> @@ -829,7 +829,7 @@ void ff_vc1_inv_trans_8x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
> MMI_LWC1(%[ftmp3], %[tmp0], 0x04)
> PTR_ADDU "%[tmp0], %[tmp0], %[linesize] \n\t"
> MMI_LWC1(%[ftmp4], %[tmp0], 0x04)
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "punpcklbh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "punpcklbh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> @@ -877,7 +877,7 @@ void ff_vc1_inv_trans_4x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *blo
> dc = (12 * dc + 64) >> 7;
>
> __asm__ volatile(
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[dc], %[dc], %[ftmp0] \n\t"
>
> MMI_LWC1(%[ftmp1], %[dest0], 0x00)
> @@ -1058,7 +1058,7 @@ void ff_vc1_inv_trans_4x8_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
> MMI_LWC1(%[ftmp7], %[tmp0], 0x00)
> PTR_ADDU "%[tmp0], %[tmp0], %[linesize] \n\t"
> MMI_LWC1(%[ftmp8], %[tmp0], 0x00)
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "punpcklbh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "punpcklbh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> @@ -1133,7 +1133,7 @@ void ff_vc1_inv_trans_4x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *blo
> dc = (17 * dc + 64) >> 7;
>
> __asm__ volatile(
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "pshufh %[dc], %[dc], %[ftmp0] \n\t"
>
> MMI_LWC1(%[ftmp1], %[dest0], 0x00)
> @@ -1339,7 +1339,7 @@ void ff_vc1_inv_trans_4x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
> MMI_LWC1(%[ftmp3], %[tmp0], 0x00)
> PTR_ADDU "%[tmp0], %[tmp0], %[linesize] \n\t"
> MMI_LWC1(%[ftmp4], %[tmp0], 0x00)
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "punpcklbh %[ftmp1], %[ftmp1], %[ftmp0] \n\t"
> "punpcklbh %[ftmp2], %[ftmp2], %[ftmp0] \n\t"
> "punpcklbh %[ftmp3], %[ftmp3], %[ftmp0] \n\t"
> @@ -1664,7 +1664,7 @@ static void vc1_put_ver_16b_shift2_mmi(int16_t *dst,
> DECLARE_VAR_ADDRT;
>
> __asm__ volatile(
> - "xor $f0, $f0, $f0 \n\t"
> + "pxor $f0, $f0, $f0 \n\t"
> "li $8, 0x03 \n\t"
> LOAD_ROUNDER_MMI("%[rnd]")
> "ldc1 $f12, %[ff_pw_9] \n\t"
> @@ -1771,7 +1771,7 @@ static void OPNAME ## vc1_shift2_mmi(uint8_t *dst, const uint8_t *src, \
> rnd = 8 - rnd; \
> \
> __asm__ volatile( \
> - "xor $f0, $f0, $f0 \n\t" \
> + "pxor $f0, $f0, $f0 \n\t" \
> "li $10, 0x08 \n\t" \
> LOAD_ROUNDER_MMI("%[rnd]") \
> "ldc1 $f12, %[ff_pw_9] \n\t" \
> @@ -1898,7 +1898,7 @@ vc1_put_ver_16b_ ## NAME ## _mmi(int16_t *dst, const uint8_t *src, \
> src -= src_stride; \
> \
> __asm__ volatile( \
> - "xor $f0, $f0, $f0 \n\t" \
> + "pxor $f0, $f0, $f0 \n\t" \
> LOAD_ROUNDER_MMI("%[rnd]") \
> "ldc1 $f10, %[ff_pw_53] \n\t" \
> "ldc1 $f12, %[ff_pw_18] \n\t" \
> @@ -1973,7 +1973,7 @@ OPNAME ## vc1_hor_16b_ ## NAME ## _mmi(uint8_t *dst, mips_reg stride, \
> rnd -= (-4+58+13-3)*256; /* Add -256 bias */ \
> \
> __asm__ volatile( \
> - "xor $f0, $f0, $f0 \n\t" \
> + "pxor $f0, $f0, $f0 \n\t" \
> LOAD_ROUNDER_MMI("%[rnd]") \
> "ldc1 $f10, %[ff_pw_53] \n\t" \
> "ldc1 $f12, %[ff_pw_18] \n\t" \
> @@ -2023,7 +2023,7 @@ OPNAME ## vc1_## NAME ## _mmi(uint8_t *dst, const uint8_t *src, \
> rnd = 32-rnd; \
> \
> __asm__ volatile ( \
> - "xor $f0, $f0, $f0 \n\t" \
> + "pxor $f0, $f0, $f0 \n\t" \
> LOAD_ROUNDER_MMI("%[rnd]") \
> "ldc1 $f10, %[ff_pw_53] \n\t" \
> "ldc1 $f12, %[ff_pw_18] \n\t" \
> @@ -2259,7 +2259,7 @@ void ff_put_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst /* align 8 */,
>
> __asm__ volatile(
> "li %[tmp0], 0x06 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp9] \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -2314,7 +2314,7 @@ void ff_put_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst /* align 8 */,
>
> __asm__ volatile(
> "li %[tmp0], 0x06 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp5] \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -2367,7 +2367,7 @@ void ff_avg_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst /* align 8 */,
>
> __asm__ volatile(
> "li %[tmp0], 0x06 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp9] \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> @@ -2425,7 +2425,7 @@ void ff_avg_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst /* align 8 */,
>
> __asm__ volatile(
> "li %[tmp0], 0x06 \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[tmp0], %[ftmp5] \n\t"
> "pshufh %[A], %[A], %[ftmp0] \n\t"
> "pshufh %[B], %[B], %[ftmp0] \n\t"
> diff --git a/libavcodec/mips/vp3dsp_idct_mmi.c b/libavcodec/mips/vp3dsp_idct_mmi.c
> index c5c4cf3..0d4cba1 100644
> --- a/libavcodec/mips/vp3dsp_idct_mmi.c
> +++ b/libavcodec/mips/vp3dsp_idct_mmi.c
> @@ -34,7 +34,7 @@ static void idct_row_mmi(int16_t *input)
> double ftmp[23];
> uint64_t tmp[2];
> __asm__ volatile (
> - "xor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> + "pxor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> LOAD_CONST(%[csth_1], 1)
> "li %[tmp0], 0x02 \n\t"
> "1: \n\t"
> @@ -51,14 +51,14 @@ static void idct_row_mmi(int16_t *input)
> LOAD_CONST(%[ftmp9], 12785)
> "pmulhh %[A], %[ftmp9], %[ftmp7] \n\t"
> "pcmpgth %[C], %[ftmp10], %[ftmp1] \n\t"
> - "or %[mask], %[C], %[csth_1] \n\t"
> + "por %[mask], %[C], %[csth_1] \n\t"
> "pmullh %[B], %[ftmp1], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "paddh %[A], %[A], %[B] \n\t"
> "paddh %[A], %[A], %[C] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp7] \n\t"
> - "or %[mask], %[D], %[csth_1] \n\t"
> + "por %[mask], %[D], %[csth_1] \n\t"
> "pmullh %[ftmp7], %[ftmp7], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[ftmp7] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -69,12 +69,12 @@ static void idct_row_mmi(int16_t *input)
> LOAD_CONST(%[ftmp8], 54491)
> LOAD_CONST(%[ftmp9], 36410)
> "pcmpgth %[Ad], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ad], %[csth_1] \n\t"
> + "por %[mask], %[Ad], %[csth_1] \n\t"
> "pmullh %[ftmp1], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[C], %[ftmp9], %[ftmp1] \n\t"
> "pmullh %[C], %[C], %[mask] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[csth_1] \n\t"
> + "por %[mask], %[Bd], %[csth_1] \n\t"
> "pmullh %[D], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[D] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -82,12 +82,12 @@ static void idct_row_mmi(int16_t *input)
> "paddh %[C], %[C], %[Ad] \n\t"
> "paddh %[C], %[C], %[Bd] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[csth_1] \n\t"
> + "por %[mask], %[Bd], %[csth_1] \n\t"
> "pmullh %[ftmp1], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp9], %[ftmp1] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ed], %[csth_1] \n\t"
> + "por %[mask], %[Ed], %[csth_1] \n\t"
> "pmullh %[Ad], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> @@ -98,14 +98,14 @@ static void idct_row_mmi(int16_t *input)
> LOAD_CONST(%[ftmp8], 46341)
> "psubh %[Ad], %[A], %[C] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[Ad] \n\t"
> - "or %[mask], %[Bd], %[csth_1] \n\t"
> + "por %[mask], %[Bd], %[csth_1] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "paddh %[Ad], %[Ad], %[Bd] \n\t"
> "psubh %[Bd], %[B], %[D] \n\t"
> "pcmpgth %[Cd], %[ftmp10], %[Bd] \n\t"
> - "or %[mask], %[Cd], %[csth_1] \n\t"
> + "por %[mask], %[Cd], %[csth_1] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> "pmulhuh %[Bd], %[ftmp8], %[Bd] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> @@ -114,14 +114,14 @@ static void idct_row_mmi(int16_t *input)
> "paddh %[Dd], %[B], %[D] \n\t"
> "paddh %[A], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[B], %[ftmp10], %[A] \n\t"
> - "or %[mask], %[B], %[csth_1] \n\t"
> + "por %[mask], %[B], %[csth_1] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> "pmulhuh %[A], %[ftmp8], %[A] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> "paddh %[A], %[A], %[B] \n\t"
> "psubh %[B], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[C], %[ftmp10], %[B] \n\t"
> - "or %[mask], %[C], %[csth_1] \n\t"
> + "por %[mask], %[C], %[csth_1] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -131,14 +131,14 @@ static void idct_row_mmi(int16_t *input)
> LOAD_CONST(%[ftmp9], 25080)
> "pmulhh %[C], %[ftmp9], %[ftmp6] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp2] \n\t"
> - "or %[mask], %[D], %[csth_1] \n\t"
> + "por %[mask], %[D], %[csth_1] \n\t"
> "pmullh %[Ed], %[ftmp2], %[mask] \n\t"
> "pmulhuh %[Ed], %[ftmp8], %[Ed] \n\t"
> "pmullh %[Ed], %[Ed], %[mask] \n\t"
> "paddh %[C], %[C], %[Ed] \n\t"
> "paddh %[C], %[C], %[D] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp6] \n\t"
> - "or %[mask], %[Ed], %[csth_1] \n\t"
> + "por %[mask], %[Ed], %[csth_1] \n\t"
> "pmullh %[ftmp6], %[ftmp6], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[ftmp6] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -193,7 +193,7 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> for (int i = 0; i < 8; ++i)
> temp_value[i] = av_clip_uint8(128 + ((46341 * input[i << 3] + (8 << 16)) >> 20));
> __asm__ volatile (
> - "xor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> + "pxor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> "li %[tmp0], 0x02 \n\t"
> "1: \n\t"
> "ldc1 %[ftmp0], 0x00(%[input]) \n\t"
> @@ -213,14 +213,14 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[Gd], 1)
> "pmulhh %[A], %[ftmp9], %[ftmp7] \n\t"
> "pcmpgth %[C], %[ftmp10], %[ftmp1] \n\t"
> - "or %[mask], %[C], %[Gd] \n\t"
> + "por %[mask], %[C], %[Gd] \n\t"
> "pmullh %[B], %[ftmp1], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "paddh %[A], %[A], %[B] \n\t"
> "paddh %[A], %[A], %[C] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp7] \n\t"
> - "or %[mask], %[D], %[Gd] \n\t"
> + "por %[mask], %[D], %[Gd] \n\t"
> "pmullh %[Ad], %[ftmp7], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[Ad] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -231,12 +231,12 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp8], 54491)
> LOAD_CONST(%[ftmp9], 36410)
> "pcmpgth %[Ad], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ad], %[Gd] \n\t"
> + "por %[mask], %[Ad], %[Gd] \n\t"
> "pmullh %[Cd], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[C], %[ftmp9], %[Cd] \n\t"
> "pmullh %[C], %[C], %[mask] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[D], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[D] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -244,12 +244,12 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> "paddh %[C], %[C], %[Ad] \n\t"
> "paddh %[C], %[C], %[Bd] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[Cd], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp9], %[Cd] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ed], %[Gd] \n\t"
> + "por %[mask], %[Ed], %[Gd] \n\t"
> "pmullh %[Ad], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> @@ -260,14 +260,14 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp8], 46341)
> "psubh %[Ad], %[A], %[C] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[Ad] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "paddh %[Ad], %[Ad], %[Bd] \n\t"
> "psubh %[Bd], %[B], %[D] \n\t"
> "pcmpgth %[Cd], %[ftmp10], %[Bd] \n\t"
> - "or %[mask], %[Cd], %[Gd] \n\t"
> + "por %[mask], %[Cd], %[Gd] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> "pmulhuh %[Bd], %[ftmp8], %[Bd] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> @@ -278,7 +278,7 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[Ed], 2056)
> "paddh %[A], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[B], %[ftmp10], %[A] \n\t"
> - "or %[mask], %[B], %[Gd] \n\t"
> + "por %[mask], %[B], %[Gd] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> "pmulhuh %[A], %[ftmp8], %[A] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> @@ -286,7 +286,7 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> "paddh %[A], %[A], %[Ed] \n\t"
> "psubh %[B], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[C], %[ftmp10], %[B] \n\t"
> - "or %[mask], %[C], %[Gd] \n\t"
> + "por %[mask], %[C], %[Gd] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -297,14 +297,14 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp9], 25080)
> "pmulhh %[C], %[ftmp9], %[ftmp6] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp2] \n\t"
> - "or %[mask], %[D], %[Gd] \n\t"
> + "por %[mask], %[D], %[Gd] \n\t"
> "pmullh %[Ed], %[ftmp2], %[mask] \n\t"
> "pmulhuh %[Ed], %[ftmp8], %[Ed] \n\t"
> "pmullh %[Ed], %[Ed], %[mask] \n\t"
> "paddh %[C], %[C], %[Ed] \n\t"
> "paddh %[C], %[C], %[D] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp6] \n\t"
> - "or %[mask], %[Ed], %[Gd] \n\t"
> + "por %[mask], %[Ed], %[Gd] \n\t"
> "pmullh %[D], %[ftmp6], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[D] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -317,12 +317,12 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> "psubh %[C], %[B], %[Ad] \n\t"
> "psubh %[B], %[Bd], %[D] \n\t"
> "paddh %[D], %[Bd], %[D] \n\t"
> - "or %[mask], %[ftmp1], %[ftmp2] \n\t"
> - "or %[mask], %[mask], %[ftmp3] \n\t"
> - "or %[mask], %[mask], %[ftmp4] \n\t"
> - "or %[mask], %[mask], %[ftmp5] \n\t"
> - "or %[mask], %[mask], %[ftmp6] \n\t"
> - "or %[mask], %[mask], %[ftmp7] \n\t"
> + "por %[mask], %[ftmp1], %[ftmp2] \n\t"
> + "por %[mask], %[mask], %[ftmp3] \n\t"
> + "por %[mask], %[mask], %[ftmp4] \n\t"
> + "por %[mask], %[mask], %[ftmp5] \n\t"
> + "por %[mask], %[mask], %[ftmp6] \n\t"
> + "por %[mask], %[mask], %[ftmp7] \n\t"
> "pcmpeqh %[mask], %[mask], %[ftmp10] \n\t"
> "packushb %[mask], %[mask], %[ftmp10] \n\t"
> "li %[tmp1], 0x04 \n\t"
> @@ -361,7 +361,7 @@ static void idct_column_true_mmi(uint8_t *dst, int stride, int16_t *input)
> "packushb %[ftmp7], %[ftmp7], %[ftmp10] \n\t"
>
> "lwc1 %[Ed], 0x00(%[temp_value]) \n\t"
> - "and %[Ed], %[Ed], %[mask] \n\t"
> + "pand %[Ed], %[Ed], %[mask] \n\t"
> "paddb %[ftmp0], %[ftmp0], %[Ed] \n\t"
> "paddb %[ftmp1], %[ftmp1], %[Ed] \n\t"
> "paddb %[ftmp2], %[ftmp2], %[Ed] \n\t"
> @@ -412,7 +412,7 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> for (int i = 0; i < 8; ++i)
> temp_value[i] = (46341 * input[i << 3] + (8 << 16)) >> 20;
> __asm__ volatile (
> - "xor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> + "pxor %[ftmp10], %[ftmp10], %[ftmp10] \n\t"
> "li %[tmp0], 0x02 \n\t"
> "1: \n\t"
> "ldc1 %[ftmp0], 0x00(%[input]) \n\t"
> @@ -432,14 +432,14 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[Gd], 1)
> "pmulhh %[A], %[ftmp9], %[ftmp7] \n\t"
> "pcmpgth %[C], %[ftmp10], %[ftmp1] \n\t"
> - "or %[mask], %[C], %[Gd] \n\t"
> + "por %[mask], %[C], %[Gd] \n\t"
> "pmullh %[B], %[ftmp1], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "paddh %[A], %[A], %[B] \n\t"
> "paddh %[A], %[A], %[C] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp7] \n\t"
> - "or %[mask], %[D], %[Gd] \n\t"
> + "por %[mask], %[D], %[Gd] \n\t"
> "pmullh %[Ad], %[ftmp7], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[Ad] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -450,12 +450,12 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp8], 54491)
> LOAD_CONST(%[ftmp9], 36410)
> "pcmpgth %[Ad], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ad], %[Gd] \n\t"
> + "por %[mask], %[Ad], %[Gd] \n\t"
> "pmullh %[Cd], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[C], %[ftmp9], %[Cd] \n\t"
> "pmullh %[C], %[C], %[mask] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[D], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[D] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -463,12 +463,12 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> "paddh %[C], %[C], %[Ad] \n\t"
> "paddh %[C], %[C], %[Bd] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[ftmp3] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[Cd], %[ftmp3], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp9], %[Cd] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp5] \n\t"
> - "or %[mask], %[Ed], %[Gd] \n\t"
> + "por %[mask], %[Ed], %[Gd] \n\t"
> "pmullh %[Ad], %[ftmp5], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> @@ -479,14 +479,14 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp8], 46341)
> "psubh %[Ad], %[A], %[C] \n\t"
> "pcmpgth %[Bd], %[ftmp10], %[Ad] \n\t"
> - "or %[mask], %[Bd], %[Gd] \n\t"
> + "por %[mask], %[Bd], %[Gd] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "pmulhuh %[Ad], %[ftmp8], %[Ad] \n\t"
> "pmullh %[Ad], %[Ad], %[mask] \n\t"
> "paddh %[Ad], %[Ad], %[Bd] \n\t"
> "psubh %[Bd], %[B], %[D] \n\t"
> "pcmpgth %[Cd], %[ftmp10], %[Bd] \n\t"
> - "or %[mask], %[Cd], %[Gd] \n\t"
> + "por %[mask], %[Cd], %[Gd] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> "pmulhuh %[Bd], %[ftmp8], %[Bd] \n\t"
> "pmullh %[Bd], %[Bd], %[mask] \n\t"
> @@ -497,7 +497,7 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[Ed], 8)
> "paddh %[A], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[B], %[ftmp10], %[A] \n\t"
> - "or %[mask], %[B], %[Gd] \n\t"
> + "por %[mask], %[B], %[Gd] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> "pmulhuh %[A], %[ftmp8], %[A] \n\t"
> "pmullh %[A], %[A], %[mask] \n\t"
> @@ -505,7 +505,7 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> "paddh %[A], %[A], %[Ed] \n\t"
> "psubh %[B], %[ftmp0], %[ftmp4] \n\t"
> "pcmpgth %[C], %[ftmp10], %[B] \n\t"
> - "or %[mask], %[C], %[Gd] \n\t"
> + "por %[mask], %[C], %[Gd] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> "pmulhuh %[B], %[ftmp8], %[B] \n\t"
> "pmullh %[B], %[B], %[mask] \n\t"
> @@ -516,14 +516,14 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> LOAD_CONST(%[ftmp9], 25080)
> "pmulhh %[C], %[ftmp9], %[ftmp6] \n\t"
> "pcmpgth %[D], %[ftmp10], %[ftmp2] \n\t"
> - "or %[mask], %[D], %[Gd] \n\t"
> + "por %[mask], %[D], %[Gd] \n\t"
> "pmullh %[Ed], %[ftmp2], %[mask] \n\t"
> "pmulhuh %[Ed], %[ftmp8], %[Ed] \n\t"
> "pmullh %[Ed], %[Ed], %[mask] \n\t"
> "paddh %[C], %[C], %[Ed] \n\t"
> "paddh %[C], %[C], %[D] \n\t"
> "pcmpgth %[Ed], %[ftmp10], %[ftmp6] \n\t"
> - "or %[mask], %[Ed], %[Gd] \n\t"
> + "por %[mask], %[Ed], %[Gd] \n\t"
> "pmullh %[D], %[ftmp6], %[mask] \n\t"
> "pmulhuh %[D], %[ftmp8], %[D] \n\t"
> "pmullh %[D], %[D], %[mask] \n\t"
> @@ -536,12 +536,12 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> "psubh %[C], %[B], %[Ad] \n\t"
> "psubh %[B], %[Bd], %[D] \n\t"
> "paddh %[D], %[Bd], %[D] \n\t"
> - "or %[mask], %[ftmp1], %[ftmp2] \n\t"
> - "or %[mask], %[mask], %[ftmp3] \n\t"
> - "or %[mask], %[mask], %[ftmp4] \n\t"
> - "or %[mask], %[mask], %[ftmp5] \n\t"
> - "or %[mask], %[mask], %[ftmp6] \n\t"
> - "or %[mask], %[mask], %[ftmp7] \n\t"
> + "por %[mask], %[ftmp1], %[ftmp2] \n\t"
> + "por %[mask], %[mask], %[ftmp3] \n\t"
> + "por %[mask], %[mask], %[ftmp4] \n\t"
> + "por %[mask], %[mask], %[ftmp5] \n\t"
> + "por %[mask], %[mask], %[ftmp6] \n\t"
> + "por %[mask], %[mask], %[ftmp7] \n\t"
> "pcmpeqh %[mask], %[mask], %[ftmp10] \n\t"
> "li %[tmp1], 0x04 \n\t"
> "dmtc1 %[tmp1], %[ftmp8] \n\t"
> @@ -587,16 +587,16 @@ static void idct_column_false_mmi(uint8_t *dst, int stride, int16_t *input)
> "punpcklbh %[Cd], %[Cd], %[ftmp10] \n\t"
> "punpcklbh %[Dd], %[Dd], %[ftmp10] \n\t"
> "ldc1 %[Ed], 0x00(%[temp_value]) \n\t"
> - "and %[Ed], %[Ed], %[mask] \n\t"
> - "nor %[mask], %[mask], %[mask] \n\t"
> - "and %[ftmp0], %[ftmp0], %[mask] \n\t"
> - "and %[ftmp1], %[ftmp1], %[mask] \n\t"
> - "and %[ftmp2], %[ftmp2], %[mask] \n\t"
> - "and %[ftmp3], %[ftmp3], %[mask] \n\t"
> - "and %[ftmp4], %[ftmp4], %[mask] \n\t"
> - "and %[ftmp5], %[ftmp5], %[mask] \n\t"
> - "and %[ftmp6], %[ftmp6], %[mask] \n\t"
> - "and %[ftmp7], %[ftmp7], %[mask] \n\t"
> + "pand %[Ed], %[Ed], %[mask] \n\t"
> + "pnor %[mask], %[mask], %[mask] \n\t"
> + "pand %[ftmp0], %[ftmp0], %[mask] \n\t"
> + "pand %[ftmp1], %[ftmp1], %[mask] \n\t"
> + "pand %[ftmp2], %[ftmp2], %[mask] \n\t"
> + "pand %[ftmp3], %[ftmp3], %[mask] \n\t"
> + "pand %[ftmp4], %[ftmp4], %[mask] \n\t"
> + "pand %[ftmp5], %[ftmp5], %[mask] \n\t"
> + "pand %[ftmp6], %[ftmp6], %[mask] \n\t"
> + "pand %[ftmp7], %[ftmp7], %[mask] \n\t"
> "paddh %[ftmp0], %[ftmp0], %[A] \n\t"
> "paddh %[ftmp1], %[ftmp1], %[B] \n\t"
> "paddh %[ftmp2], %[ftmp2], %[C] \n\t"
> @@ -689,7 +689,7 @@ void ff_vp3_idct_dc_add_mmi(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
> double ftmp[7];
> uint64_t tmp;
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[dc], %[ftmp5] \n\t"
> "pshufh %[ftmp5], %[ftmp5], %[ftmp0] \n\t"
> "li %[tmp0], 0x08 \n\t"
> @@ -734,10 +734,10 @@ void ff_put_no_rnd_pixels_l2_mmi(uint8_t *dst, const uint8_t *src1,
> "gsldrc1 %[ftmp1], 0x00(%[src1]) \n\t"
> "gsldlc1 %[ftmp2], 0x07(%[src2]) \n\t"
> "gsldrc1 %[ftmp2], 0x00(%[src2]) \n\t"
> - "xor %[ftmp3], %[ftmp1], %[ftmp2] \n\t"
> - "and %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> + "pxor %[ftmp3], %[ftmp1], %[ftmp2] \n\t"
> + "pand %[ftmp3], %[ftmp3], %[ftmp4] \n\t"
> "psrlw %[ftmp3], %[ftmp3], %[ftmp5] \n\t"
> - "and %[ftmp6], %[ftmp1], %[ftmp2] \n\t"
> + "pand %[ftmp6], %[ftmp1], %[ftmp2] \n\t"
> "paddw %[ftmp3], %[ftmp3], %[ftmp6] \n\t"
> "sdc1 %[ftmp3], 0x00(%[dst]) \n\t"
> PTR_ADDU "%[src1], %[src1], %[stride] \n\t"
> diff --git a/libavcodec/mips/vp8dsp_mmi.c b/libavcodec/mips/vp8dsp_mmi.c
> index ae0b555..b352906 100644
> --- a/libavcodec/mips/vp8dsp_mmi.c
> +++ b/libavcodec/mips/vp8dsp_mmi.c
> @@ -38,10 +38,10 @@
> "pcmpeqb %[db_1], "#src1", "#src2" \n\t" \
> "pmaxub %[db_2], "#src1", "#src2" \n\t" \
> "pcmpeqb %[db_2], %[db_2], "#src1" \n\t" \
> - "xor "#dst", %[db_2], %[db_1] \n\t"
> + "pxor "#dst", %[db_2], %[db_1] \n\t"
>
> #define MMI_BTOH(dst_l, dst_r, src) \
> - "xor %[db_1], %[db_1], %[db_1] \n\t" \
> + "pxor %[db_1], %[db_1], %[db_1] \n\t" \
> "pcmpgtb %[db_2], %[db_1], "#src" \n\t" \
> "punpcklbh "#dst_r", "#src", %[db_2] \n\t" \
> "punpckhbh "#dst_l", "#src", %[db_2] \n\t"
> @@ -84,17 +84,17 @@
> "punpcklwd %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> MMI_PCMPGTUB(%[mask], %[mask], %[ftmp3]) \
> "pcmpeqw %[ftmp3], %[ftmp3], %[ftmp3] \n\t" \
> - "xor %[mask], %[mask], %[ftmp3] \n\t" \
> + "pxor %[mask], %[mask], %[ftmp3] \n\t" \
> /* VP8_MBFILTER */ \
> "li %[tmp0], 0x80808080 \n\t" \
> "dmtc1 %[tmp0], %[ftmp7] \n\t" \
> "punpcklwd %[ftmp7], %[ftmp7], %[ftmp7] \n\t" \
> - "xor %[p2], %[p2], %[ftmp7] \n\t" \
> - "xor %[p1], %[p1], %[ftmp7] \n\t" \
> - "xor %[p0], %[p0], %[ftmp7] \n\t" \
> - "xor %[q0], %[q0], %[ftmp7] \n\t" \
> - "xor %[q1], %[q1], %[ftmp7] \n\t" \
> - "xor %[q2], %[q2], %[ftmp7] \n\t" \
> + "pxor %[p2], %[p2], %[ftmp7] \n\t" \
> + "pxor %[p1], %[p1], %[ftmp7] \n\t" \
> + "pxor %[p0], %[p0], %[ftmp7] \n\t" \
> + "pxor %[q0], %[q0], %[ftmp7] \n\t" \
> + "pxor %[q1], %[q1], %[ftmp7] \n\t" \
> + "pxor %[q2], %[q2], %[ftmp7] \n\t" \
> "psubsb %[ftmp4], %[p1], %[q1] \n\t" \
> "psubb %[ftmp5], %[q0], %[p0] \n\t" \
> MMI_BTOH(%[ftmp1], %[ftmp0], %[ftmp5]) \
> @@ -109,8 +109,8 @@
> "paddh %[ftmp1], %[ftmp3], %[ftmp1] \n\t" \
> /* Combine left and right part */ \
> "packsshb %[ftmp1], %[ftmp0], %[ftmp1] \n\t" \
> - "and %[ftmp1], %[ftmp1], %[mask] \n\t" \
> - "and %[ftmp2], %[ftmp1], %[hev] \n\t" \
> + "pand %[ftmp1], %[ftmp1], %[mask] \n\t" \
> + "pand %[ftmp2], %[ftmp1], %[hev] \n\t" \
> "li %[tmp0], 0x04040404 \n\t" \
> "dmtc1 %[tmp0], %[ftmp0] \n\t" \
> "punpcklwd %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> @@ -129,8 +129,8 @@
> "paddsb %[p0], %[p0], %[ftmp4] \n\t" \
> /* filt_val &= ~hev */ \
> "pcmpeqw %[ftmp0], %[ftmp0], %[ftmp0] \n\t" \
> - "xor %[hev], %[hev], %[ftmp0] \n\t" \
> - "and %[ftmp1], %[ftmp1], %[hev] \n\t" \
> + "pxor %[hev], %[hev], %[ftmp0] \n\t" \
> + "pand %[ftmp1], %[ftmp1], %[hev] \n\t" \
> MMI_BTOH(%[ftmp5], %[ftmp6], %[ftmp1]) \
> "li %[tmp0], 0x07 \n\t" \
> "dmtc1 %[tmp0], %[ftmp2] \n\t" \
> @@ -151,9 +151,9 @@
> /* Combine left and right part */ \
> "packsshb %[ftmp4], %[ftmp3], %[ftmp4] \n\t" \
> "psubsb %[q0], %[q0], %[ftmp4] \n\t" \
> - "xor %[q0], %[q0], %[ftmp7] \n\t" \
> + "pxor %[q0], %[q0], %[ftmp7] \n\t" \
> "paddsb %[p0], %[p0], %[ftmp4] \n\t" \
> - "xor %[p0], %[p0], %[ftmp7] \n\t" \
> + "pxor %[p0], %[p0], %[ftmp7] \n\t" \
> "li %[tmp0], 0x00120012 \n\t" \
> "dmtc1 %[tmp0], %[ftmp1] \n\t" \
> "punpcklwd %[ftmp1], %[ftmp1], %[ftmp1] \n\t" \
> @@ -168,9 +168,9 @@
> /* Combine left and right part */ \
> "packsshb %[ftmp4], %[ftmp3], %[ftmp4] \n\t" \
> "psubsb %[q1], %[q1], %[ftmp4] \n\t" \
> - "xor %[q1], %[q1], %[ftmp7] \n\t" \
> + "pxor %[q1], %[q1], %[ftmp7] \n\t" \
> "paddsb %[p1], %[p1], %[ftmp4] \n\t" \
> - "xor %[p1], %[p1], %[ftmp7] \n\t" \
> + "pxor %[p1], %[p1], %[ftmp7] \n\t" \
> "li %[tmp0], 0x03 \n\t" \
> "dmtc1 %[tmp0], %[ftmp1] \n\t" \
> /* Right part */ \
> @@ -186,9 +186,9 @@
> /* Combine left and right part */ \
> "packsshb %[ftmp4], %[ftmp3], %[ftmp4] \n\t" \
> "psubsb %[q2], %[q2], %[ftmp4] \n\t" \
> - "xor %[q2], %[q2], %[ftmp7] \n\t" \
> + "pxor %[q2], %[q2], %[ftmp7] \n\t" \
> "paddsb %[p2], %[p2], %[ftmp4] \n\t" \
> - "xor %[p2], %[p2], %[ftmp7] \n\t"
> + "pxor %[p2], %[p2], %[ftmp7] \n\t"
>
> #define PUT_VP8_EPEL4_H6_MMI(src, dst) \
> MMI_ULWC1(%[ftmp1], src, 0x00) \
> @@ -1021,7 +1021,7 @@ void ff_vp8_luma_dc_wht_mmi(int16_t block[4][4][16], int16_t dc[16])
> block[3][3][0] = (dc[12] - dc[15] + 3 - dc[13] + dc[14]) >> 3;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_SDC1(%[ftmp0], %[dc], 0x00)
> MMI_SDC1(%[ftmp0], %[dc], 0x08)
> MMI_SDC1(%[ftmp0], %[dc], 0x10)
> @@ -1136,7 +1136,7 @@ void ff_vp8_idct_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
> DECLARE_VAR_ALL64;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> MMI_LDC1(%[ftmp1], %[block], 0x00)
> MMI_LDC1(%[ftmp2], %[block], 0x08)
> MMI_LDC1(%[ftmp3], %[block], 0x10)
> @@ -1302,7 +1302,7 @@ void ff_vp8_idct_dc_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
> block[0] = 0;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "mtc1 %[dc], %[ftmp5] \n\t"
> MMI_LWC1(%[ftmp1], %[dst0], 0x00)
> MMI_LWC1(%[ftmp2], %[dst1], 0x00)
> @@ -1618,7 +1618,7 @@ void ff_put_vp8_epel16_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[15] = cm[(filter[2] * src[15] - filter[1] * src[14] + filter[3] * src[16] - filter[4] * src[17] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -1685,7 +1685,7 @@ void ff_put_vp8_epel8_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[7] = cm[(filter[2] * src[7] - filter[1] * src[ 6] + filter[3] * src[8] - filter[4] * src[9] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -1742,7 +1742,7 @@ void ff_put_vp8_epel4_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[3] = cm[(filter[2] * src[3] - filter[1] * src[ 2] + filter[3] * src[4] - filter[4] * src[5] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -1811,7 +1811,7 @@ void ff_put_vp8_epel16_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[15] = cm[(filter[2]*src[15] - filter[1]*src[14] + filter[0]*src[13] + filter[3]*src[16] - filter[4]*src[17] + filter[5]*src[18] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -1879,7 +1879,7 @@ void ff_put_vp8_epel8_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[7] = cm[(filter[2]*src[7] - filter[1]*src[ 6] + filter[0]*src[ 5] + filter[3]*src[8] - filter[4]*src[9] + filter[5]*src[10] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -1937,7 +1937,7 @@ void ff_put_vp8_epel4_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[3] = cm[(filter[2]*src[3] - filter[1]*src[ 2] + filter[0]*src[ 1] + filter[3]*src[4] - filter[4]*src[5] + filter[5]*src[ 6] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2007,7 +2007,7 @@ void ff_put_vp8_epel16_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[15] = cm[(filter[2] * src[15] - filter[1] * src[15-srcstride] + filter[3] * src[15+srcstride] - filter[4] * src[15+2*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2076,7 +2076,7 @@ void ff_put_vp8_epel8_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[7] = cm[(filter[2] * src[7] - filter[1] * src[7-srcstride] + filter[3] * src[7+srcstride] - filter[4] * src[7+2*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2135,7 +2135,7 @@ void ff_put_vp8_epel4_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[3] = cm[(filter[2] * src[3] - filter[1] * src[3-srcstride] + filter[3] * src[3+srcstride] - filter[4] * src[3+2*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2205,7 +2205,7 @@ void ff_put_vp8_epel16_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[15] = cm[(filter[2]*src[15] - filter[1]*src[15-srcstride] + filter[0]*src[15-2*srcstride] + filter[3]*src[15+srcstride] - filter[4]*src[15+2*srcstride] + filter[5]*src[15+3*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2275,7 +2275,7 @@ void ff_put_vp8_epel8_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[7] = cm[(filter[2]*src[7] - filter[1]*src[7-srcstride] + filter[0]*src[7-2*srcstride] + filter[3]*src[7+srcstride] - filter[4]*src[7+2*srcstride] + filter[5]*src[7+3*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2335,7 +2335,7 @@ void ff_put_vp8_epel4_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
> dst[3] = cm[(filter[2]*src[3] - filter[1]*src[3-srcstride] + filter[0]*src[3-2*srcstride] + filter[3]*src[3+srcstride] - filter[4]*src[3+2*srcstride] + filter[5]*src[3+3*srcstride] + 64) >> 7];
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x07 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
>
> @@ -2873,7 +2873,7 @@ void ff_put_vp8_bilinear16_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[15] = (a * src[15] + b * src[16] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[a], %[a], %[ftmp0] \n\t"
> @@ -2940,7 +2940,7 @@ void ff_put_vp8_bilinear16_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[7] = (c * src[7] + d * src[7 + sstride] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[c], %[c], %[ftmp0] \n\t"
> @@ -3041,7 +3041,7 @@ void ff_put_vp8_bilinear8_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[7] = (a * src[7] + b * src[8] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[a], %[a], %[ftmp0] \n\t"
> @@ -3102,7 +3102,7 @@ void ff_put_vp8_bilinear8_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[7] = (c * src[7] + d * src[7 + sstride] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[c], %[c], %[ftmp0] \n\t"
> @@ -3194,7 +3194,7 @@ void ff_put_vp8_bilinear4_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[3] = (a * src[3] + b * src[4] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[a], %[a], %[ftmp0] \n\t"
> @@ -3252,7 +3252,7 @@ void ff_put_vp8_bilinear4_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
> dst[3] = (c * src[3] + d * src[3 + sstride] + 4) >> 3;
> */
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "li %[tmp0], 0x03 \n\t"
> "mtc1 %[tmp0], %[ftmp4] \n\t"
> "pshufh %[c], %[c], %[ftmp0] \n\t"
> diff --git a/libavcodec/mips/vp9_mc_mmi.c b/libavcodec/mips/vp9_mc_mmi.c
> index e7a8387..fa65ff5 100644
> --- a/libavcodec/mips/vp9_mc_mmi.c
> +++ b/libavcodec/mips/vp9_mc_mmi.c
> @@ -82,7 +82,7 @@ static void convolve_horiz_mmi(const uint8_t *src, int32_t src_stride,
> dst_stride -= w;
> __asm__ volatile (
> "move %[tmp1], %[width] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "gsldlc1 %[filter1], 0x03(%[filter]) \n\t"
> "gsldrc1 %[filter1], 0x00(%[filter]) \n\t"
> "gsldlc1 %[filter2], 0x0b(%[filter]) \n\t"
> @@ -157,7 +157,7 @@ static void convolve_vert_mmi(const uint8_t *src, int32_t src_stride,
> dst_stride -= w;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "gsldlc1 %[ftmp4], 0x03(%[filter]) \n\t"
> "gsldrc1 %[ftmp4], 0x00(%[filter]) \n\t"
> "gsldlc1 %[ftmp5], 0x0b(%[filter]) \n\t"
> @@ -253,7 +253,7 @@ static void convolve_avg_horiz_mmi(const uint8_t *src, int32_t src_stride,
>
> __asm__ volatile (
> "move %[tmp1], %[width] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "gsldlc1 %[filter1], 0x03(%[filter]) \n\t"
> "gsldrc1 %[filter1], 0x00(%[filter]) \n\t"
> "gsldlc1 %[filter2], 0x0b(%[filter]) \n\t"
> @@ -339,7 +339,7 @@ static void convolve_avg_vert_mmi(const uint8_t *src, int32_t src_stride,
> dst_stride -= w;
>
> __asm__ volatile (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> "gsldlc1 %[ftmp4], 0x03(%[filter]) \n\t"
> "gsldrc1 %[ftmp4], 0x00(%[filter]) \n\t"
> "gsldlc1 %[ftmp5], 0x0b(%[filter]) \n\t"
> @@ -444,7 +444,7 @@ static void convolve_avg_mmi(const uint8_t *src, int32_t src_stride,
>
> __asm__ volatile (
> "move %[tmp1], %[width] \n\t"
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[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 82e16f9..1a6781a 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 (
> - "xor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
> + "pxor %[ftmp0], %[ftmp0], %[ftmp0] \n\t"
>
> // low 4 loop
> MMI_LDC1(%[ftmp1], %[block], 0x00)
> --
> 2.1.0
>
> _______________________________________________
> 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".
LGTM.</height;></height;></height;></height;></height;></height;></jinbo at loongson.cn></jinbo at loongson.cn></jinbo at loongson.cn>
More information about the ffmpeg-devel
mailing list