From patchwork Fri May 28 02:04:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?6YeR5rOi?= X-Patchwork-Id: 27959 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp131349iof; Thu, 27 May 2021 19:05:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjppS3p2r4p7+GtdP3Q4LZd36/Z6Tw8TU+k2SQlhmgyKAO9OKAaMWhLFDQdpVoALss17gG X-Received: by 2002:a17:906:3845:: with SMTP id w5mr2733848ejc.466.1622167540114; Thu, 27 May 2021 19:05:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622167540; cv=none; d=google.com; s=arc-20160816; b=KjJC+fNbC1wZJAP50+Pk4AtZh57kWAjqdaN1QmSX7bMUrTndNQ8ET/B2DLxKsUG/Dg B9qYMg5V07gvRiJVJOJOv/p6pOGJC1YHcEhWxc2i45nq6dvegZwCOBXMrnO2qHqwP4AE 1kyXMnpTqibPgTF8M3kyYaQMI3IZ5k8HlcgRDaHGDHp7CXsQXiPLmsS0ascvBHevNto/ ZGKoWkz7SpHffm+2NX2szbKaKw7qRfCsmxiqhZj/ah3sGFX4EkGScSkP9Jd1f0zulRF4 MxkXS0tsQjwXknKDI4dfWvWmfWbV2ORLzIxMQUDvrwil9R/G1TIS987/MjXeuG2ARmne 0jkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=wtKnVdEO9rqBc3Q6Cv/sVbIyzMTfFV8D9IUMBq0vmQc=; b=AdL/APjoIAZnVy+ye4Nnsc7S7KtKcBFxjG9od6wjpLdik8bcTzr1HyHc/0gIrzGQZb y0a09UmuHytICmT53RaoAiHzDI8zZZITOwfoRQPdPmNUi2A7boVOQkFJQcUaI6qd6mE5 ZEQKJxrr7hD5J7bNoJzKFaCP36D+MskvzMf/hlyFE/mHSImO8RN2PRucGPJMKvHQKkB6 bj1KUSkaRf45aFszCllm7OMZD/Bx1LzE1paJNDRKEazXW7QUwS4tXkCnFFAAPdERSzDJ N5zvtQBjspDpYq80YAgc+rclQKa++Yi7n9nltbdYFnvAEUYrXwt14IS6hLyqi9pSfrYm 0FQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p17si3538727ejr.362.2021.05.27.19.05.39; Thu, 27 May 2021 19:05:40 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C551A68A0BF; Fri, 28 May 2021 05:05:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D330A689CDB for ; Fri, 28 May 2021 05:04:53 +0300 (EEST) Received: from localhost (unknown [36.33.26.144]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dxv0G+T7BgNZQFAA--.5310S3; Fri, 28 May 2021 10:04:46 +0800 (CST) From: Jin Bo To: ffmpeg-devel@ffmpeg.org Date: Fri, 28 May 2021 10:04:39 +0800 Message-Id: <1622167481-10973-1-git-send-email-jinbo@loongson.cn> X-Mailer: git-send-email 2.1.0 X-CM-TRANSID: AQAAf9Dxv0G+T7BgNZQFAA--.5310S3 X-Coremail-Antispam: 1UD129KBjvAXoWDArW5tF13tr1xXr17Wr1Utrb_yoWxXr1UWo W5GrW8tasrJw1xAr4UAr1UAr4YyF18tryUJr4fJ343Gr98Xr1UCr4rC345JrW0gw43GrWa yF1jqF17ZF1UJw48n29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU5q7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xva j40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2 x7M28EF7xvwVC0I7IYx2IY67AKxVW5JVW7JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWx JVW8Jr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AKxV WxJr0_GcWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2Wl Yx0E2Ix0cI8IcVAFwI0_Jrv_JF1lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbV WUJVW8JwACjI8F5VA0II8E6IAqYI8I648v4I1lc2xSY4AK67AK6r4UMxC20s026xCaFVCj c4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4 CE17CEb7AF67AKxVWUXVWUAwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8I cVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87 Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZF pf9x0JUvoGQUUUUU= X-CM-SenderInfo: xmlqu0o6or00hjvr0hdfq/1tbiAQAPEl3QvNWC-gACsG Subject: [FFmpeg-devel] [PATCH 1/3] libavcodec/mips: Fix specification of instruction name X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Jin Bo MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QxcEI/m2c/Vh 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 --- 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> 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)