From patchwork Wed Jul 21 09:19:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaxun Yang X-Patchwork-Id: 28990 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp6130226ios; Wed, 21 Jul 2021 03:52:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0ui1rlLzysZ1eQr1cxFEFG1ubIXfdDAPodJ041QRb19e3l1vWkySWM9zIQRQ6Xs04+SGT X-Received: by 2002:a17:906:74c1:: with SMTP id z1mr37823481ejl.466.1626864741295; Wed, 21 Jul 2021 03:52:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626864741; cv=none; d=google.com; s=arc-20160816; b=1AviT6pFPEx3v/rgV0mKfGsGaxnu4ppRDmRFYCwgfuW0muEANcYk+3xSBTMP1r/h2l 0C+C9Pi8wmIXrFgDqBPaPgczJ01Ml4BFdZKuwJk0K9l9pTYZ0xyac2Khu1T3sqmvVvVh Y37WTjLDzFyM2tW2IoeOelea63J0pLXuSaZzeLkMk9KI7/gSC5JfpgLskGCsZpBNqxhC gHKxa97KMiJ1xoMYI/hyD6GfMO5B0u8ZTxugf+RddXJoeSqY1R5vl1W4Dos1geiP9kGE X64Jd/iib5gIOuiHFoO8hp3maZKMIWodqgkKegE/xEkpvfu6i03dC147ZoAf4MEdJc52 ZW7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:dkim-signature:delivered-to; bh=q1IE799csPBJhY6VJ9C6hjXNf9y0wW72lao8lgbUXoQ=; b=c9Ru6QWY1U53R56gdYhRzCCwzFrPhHPF3SZ4FVPV3/Ks6ilyfa9WHpz0gCpkzg+LSW nwkInH277GiSbvv0X0wlgNbgTgu9HDY15BUPM+Pr+DqBOWYAQSetNrTyZCBo4CQ4oXhu AFzJNMjB4rQ3wwFSL5GqdC+9723ZyEPZM6WGaFqGlBJ+B2D5zqrFVhuVgvPSRbH1aJB9 eagUtZBV/FIZ7ufsWpEzIzruFCWrpKpRfq1zm+LDBys9wHfNaJBPbjFKHkbqyYyiMWLn 69GEMvDEdkDRWZ7JMdLIgLPJOaWjIUXWwYneFS+xu5QHjexKkKERNi/eWRgR3BjccEpq njxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@flygoat.com header.s=fm2 header.b="DQ/4QLSo"; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=dL9S6mii; 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 rv2si27264887ejb.569.2021.07.21.03.52.20; Wed, 21 Jul 2021 03:52:21 -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; dkim=neutral (body hash did not verify) header.i=@flygoat.com header.s=fm2 header.b="DQ/4QLSo"; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=dL9S6mii; 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 2F3C668A7C2; Wed, 21 Jul 2021 13:51:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1B0A668A42C for ; Wed, 21 Jul 2021 13:51:04 +0300 (EEST) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 7FE435C01CE; Wed, 21 Jul 2021 05:19:42 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 21 Jul 2021 05:19:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flygoat.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=C23g8qed4JYvf vmJnuUa+eNMCgebhveUwVz0KuIN9n0=; b=DQ/4QLSokXwlUPEJkWjWiS/viqX4x gOtPsG9YQ19y0EAsEH1ub4NXx4D+crlskuFMXyZPhfkaqjNuWs9XvjUGsPBKRze9 qj83yk1TWftniyEmqLM5eZKYaDqEpJJVe9416IQdfIb0Tei3/H7JLl5gpLczomUP KGXUIb3oxJ+Evp6s+Ha9dIeIt219EG6MSITF1qf1z31xVZl2kYiJm28v9h91828I K/Z4YKsALC/AmD3+URfbrYLYs6T4rAQ3a700V4X78a1rJQNp2lb7GVkaY0henU6h RmCJWU/7kW9M08OBFgPUgsLgg8ZapG5RxaorDojZnLGo/N6RKe6kMLGVA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=C23g8qed4JYvfvmJnuUa+eNMCgebhveUwVz0KuIN9n0=; b=dL9S6mii YXAI2fnnIJ+B6+eWQ+lRSab/fxnx+k267MErR8oXJS6f5cFtwtG4bNORQzD9Sg5m XfrUW+UPlY23bfgRICorVbHIWzQNwrOUL3lVxjW/l2lZjFl/pCTGNLIpoVg7xdzY uDcQmlGi+XVX3XwgwOVK+g0nWme8fD6YqTLCYrhNSGJ4ml1u+dcByyjjlzPUWadI qyDR+7QjZms/hluY/FoFz+q2ONWoQu+8c3s0D9hC+0xH9eAtYVUf88m8yB9pH6Dc hj4uxuQosnzfEAhhi2GMrwkWy+wr9TnnzEj3FBlx4aCWw+WRor3IXFsidEGuQ3Ka qIeEc8m9hN3AZQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrfeeggddufecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtkeertd ertddtnecuhfhrohhmpeflihgrgihunhcujggrnhhguceojhhirgiguhhnrdihrghnghes fhhlhihgohgrthdrtghomheqnecuggftrfgrthhtvghrnhepjeeihffgteelkeelffduke dtheevudejvdegkeekjeefhffhhfetudetgfdtffeunecuvehluhhsthgvrhfuihiivgep tdenucfrrghrrghmpehmrghilhhfrhhomhepjhhirgiguhhnrdihrghnghesfhhlhihgoh grthdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 21 Jul 2021 05:19:40 -0400 (EDT) From: Jiaxun Yang To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Jul 2021 17:19:09 +0800 Message-Id: <20210721091913.35072-2-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210721091913.35072-1-jiaxun.yang@flygoat.com> References: <20210721091913.35072-1-jiaxun.yang@flygoat.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/5] avutil/mips: Use MMI_{L, S}QC1 macro in {SAVE, RECOVER}_REG 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: yinshiyou-hf@loongson.cn, Jiaxun Yang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: RJp75XtLnr1y {SAVE,RECOVER}_REG will be avilable for Loongson2 again, also comment about the magic. Signed-off-by: Jiaxun Yang --- libavutil/mips/mmiutils.h | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/libavutil/mips/mmiutils.h b/libavutil/mips/mmiutils.h index 6a82caa908..41715c6490 100644 --- a/libavutil/mips/mmiutils.h +++ b/libavutil/mips/mmiutils.h @@ -204,25 +204,27 @@ #endif /* HAVE_LOONGSON2 */ /** - * backup register + * Backup saved registers + * We're not using compiler's clobber list as it's not smart enough + * to take advantage of quad word load/store. */ #define BACKUP_REG \ LOCAL_ALIGNED_16(double, temp_backup_reg, [8]); \ if (_MIPS_SIM == _ABI64) \ __asm__ volatile ( \ - "gssqc1 $f25, $f24, 0x00(%[temp]) \n\t" \ - "gssqc1 $f27, $f26, 0x10(%[temp]) \n\t" \ - "gssqc1 $f29, $f28, 0x20(%[temp]) \n\t" \ - "gssqc1 $f31, $f30, 0x30(%[temp]) \n\t" \ + MMI_SQC1($f25, $f24, %[temp], 0x00) \ + MMI_SQC1($f27, $f26, %[temp], 0x10) \ + MMI_SQC1($f29, $f28, %[temp], 0x20) \ + MMI_SQC1($f31, $f30, %[temp], 0x30) \ : \ : [temp]"r"(temp_backup_reg) \ : "memory" \ ); \ else \ __asm__ volatile ( \ - "gssqc1 $f22, $f20, 0x00(%[temp]) \n\t" \ - "gssqc1 $f26, $f24, 0x10(%[temp]) \n\t" \ - "gssqc1 $f30, $f28, 0x20(%[temp]) \n\t" \ + MMI_SQC1($f22, $f20, %[temp], 0x10) \ + MMI_SQC1($f26, $f24, %[temp], 0x10) \ + MMI_SQC1($f30, $f28, %[temp], 0x20) \ : \ : [temp]"r"(temp_backup_reg) \ : "memory" \ @@ -234,19 +236,19 @@ #define RECOVER_REG \ if (_MIPS_SIM == _ABI64) \ __asm__ volatile ( \ - "gslqc1 $f25, $f24, 0x00(%[temp]) \n\t" \ - "gslqc1 $f27, $f26, 0x10(%[temp]) \n\t" \ - "gslqc1 $f29, $f28, 0x20(%[temp]) \n\t" \ - "gslqc1 $f31, $f30, 0x30(%[temp]) \n\t" \ + MMI_LQC1($f25, $f24, %[temp], 0x00) \ + MMI_LQC1($f27, $f26, %[temp], 0x10) \ + MMI_LQC1($f29, $f28, %[temp], 0x20) \ + MMI_LQC1($f31, $f30, %[temp], 0x30) \ : \ : [temp]"r"(temp_backup_reg) \ : "memory" \ ); \ else \ __asm__ volatile ( \ - "gslqc1 $f22, $f20, 0x00(%[temp]) \n\t" \ - "gslqc1 $f26, $f24, 0x10(%[temp]) \n\t" \ - "gslqc1 $f30, $f28, 0x20(%[temp]) \n\t" \ + MMI_LQC1($f22, $f20, %[temp], 0x10) \ + MMI_LQC1($f26, $f24, %[temp], 0x10) \ + MMI_LQC1($f30, $f28, %[temp], 0x20) \ : \ : [temp]"r"(temp_backup_reg) \ : "memory" \