From nobody Sun May 19 01:26:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+103744+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+103744+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1682655050; cv=none; d=zohomail.com; s=zohoarc; b=F/8aAnMD0CY373DfPk4ZBiHfH55Zr8chTm6lM0fMKD+BcjRI2Dogs219Nqd5GIRlrEKKKvf2zmKrufx9wfx4qULtdTR0eziWS1Ba5j28GLE2ha3hTYBohSPi6Ss9yJRGCQxhIipJdKAr93TOVuly7gurb1v614Jy4CAHkJ5iCTA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682655050; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=Yde+SlgUL9a8WZ3mxS+a7Bz9076yssgf+Ll6qjdr9Pc=; b=Sd+6+LXP5WNEQE8Aw775gKUqYxS8DaselO11ZIoAOtceqnc7I2136KwlVgcy/q0j6qTuXcwcAqVUIOw5NQmE6pFW+rXgXZUOJON7hYALACh2axyWaa/xmx+nRRSu0Yg3shbblGVU8WHmfnz8Ghc5D5HuzGJe+oRapsLqzyUpeHk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+103744+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 16826550503771014.0827519457641; Thu, 27 Apr 2023 21:10:50 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id Nu3xYY1788612xGSBkMvRr21; Thu, 27 Apr 2023 21:10:50 -0700 X-Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.11867.1682655048866354898 for ; Thu, 27 Apr 2023 21:10:49 -0700 X-Received: from loongson.cn (unknown [10.2.9.245]) by gateway (Coremail) with SMTP id _____8BxLutER0tkU_gBAA--.3418S3; Fri, 28 Apr 2023 12:10:44 +0800 (CST) X-Received: from code-server.gen (unknown [10.2.9.245]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxfbNDR0tkAMk_AA--.20670S2; Fri, 28 Apr 2023 12:10:43 +0800 (CST) From: "Dongyan Qian" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Chao Li Subject: [edk2-devel] [PATCH] BaseSynchronizationLib: Fix LoongArch64 synchronization functions Date: Fri, 28 Apr 2023 12:10:40 +0800 Message-Id: <20230428041040.2021514-1-qiandongyan@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8DxfbNDR0tkAMk_AA--.20670S2 X-CM-SenderInfo: htld0v5rqj5t3q6o00pqjv00gofq/ X-Coremail-Antispam: 1Uk129KBjvJXoWxAF15GrW3tF1DurykCFW7Arb_yoW5WrW7pr 13trySkF15Kw4xGF1xKws8JF15Xw1kCF98Ga98Zw18Aw1qyFyv934aqr48Zry8uFW7u3WI vF17Kr4kK3WDCrDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bn8Fc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wA2ocxC64kIII0Yj41l84x0c7CEw4 AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r1I6r4UM28EF7xvwVC0I7IYx2IY6xkF 7I0E14v26r1j6r4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7 CjxVAFwI0_Gr1j6F4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2 zVCFFI0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VCjz48v1sIEY20_WwAm72CE4IkC6x 0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64vIr41l42xK82IY6x8ErcxF aVAv8VWrMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxV Cjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY 6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6x AIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY 1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvj4RC_MaUUUUU Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,qiandongyan@loongson.cn X-Gm-Message-State: XeqmlRIqog6r4ioRLPtxzuRxx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1682655050; bh=1cHTBdy1t96HAgsF6OxgCNM3YLIh3aIqUwK3GhdQN24=; h=Cc:Date:From:Reply-To:Subject:To; b=kIG/IIAT8nfRsNSh4NN5uc7uvF77nqID4TO/VlMDzzEU95goKFPrPTvUlVhXuJthcEw +Q5cXRh8yOKz7/wJ8z8x0eCnJYggSqMZgoKPKLsefR2aKJvOcmqRKI7zdTHEVAkerB4yV YhsZG56gM8HUMeSN6ZzAXzx+ze0Zb4+2IWk= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1682655051477100002 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4432 There is a return value bug: The sc.w/sc.d instruction will destroy the reg_t0, use reg_t1 to avoid context reg_t0 being corrupted. Adjust Check that ptr align is UINT16. Optimize function SyncIncrement and SyncDecrement. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Chao Li Signed-off-by: Dongyan Qian --- .../LoongArch64/AsmSynchronization.S | 30 ++++++++----------- .../LoongArch64/Synchronization.c | 2 +- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/MdePkg/Library/BaseSynchronizationLib/LoongArch64/AsmSynchroni= zation.S b/MdePkg/Library/BaseSynchronizationLib/LoongArch64/AsmSynchroniza= tion.S index fdd50c54b5..03865bf2c9 100644 --- a/MdePkg/Library/BaseSynchronizationLib/LoongArch64/AsmSynchronization.S +++ b/MdePkg/Library/BaseSynchronizationLib/LoongArch64/AsmSynchronization.S @@ -53,9 +53,9 @@ ASM_PFX(AsmInternalSyncCompareExchange32): 1: ll.w $t0, $a0, 0x0 bne $t0, $a1, 2f - move $t0, $a2 - sc.w $t0, $a0, 0x0 - beqz $t0, 1b + move $t1, $a2 + sc.w $t1, $a0, 0x0 + beqz $t1, 1b b 3f 2: dbar 0 @@ -76,9 +76,9 @@ ASM_PFX(AsmInternalSyncCompareExchange64): 1: ll.d $t0, $a0, 0x0 bne $t0, $a1, 2f - move $t0, $a2 - sc.d $t0, $a0, 0x0 - beqz $t0, 1b + move $t1, $a2 + sc.d $t1, $a0, 0x0 + beqz $t1, 1b b 3f 2: dbar 0 @@ -94,13 +94,10 @@ AsmInternalSyncIncrement ( ) **/ ASM_PFX(AsmInternalSyncIncrement): - move $t0, $a0 - dbar 0 - ld.w $t1, $t0, 0x0 - li.w $t2, 1 - amadd.w $t1, $t2, $t0 + li.w $t0, 1 + amadd.w $zero, $t0, $a0 =20 - ld.w $a0, $t0, 0x0 + ld.w $a0, $a0, 0 jirl $zero, $ra, 0 =20 /** @@ -111,12 +108,9 @@ AsmInternalSyncDecrement ( ) **/ ASM_PFX(AsmInternalSyncDecrement): - move $t0, $a0 - dbar 0 - ld.w $t1, $t0, 0x0 - li.w $t2, -1 - amadd.w $t1, $t2, $t0 + li.w $t0, -1 + amadd.w $zero, $t0, $a0 =20 - ld.w $a0, $t0, 0x0 + ld.w $a0, $a0, 0 jirl $zero, $ra, 0 .end diff --git a/MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronizat= ion.c b/MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c index d696c8ce10..6baf841c9b 100644 --- a/MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c +++ b/MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c @@ -81,7 +81,7 @@ InternalSyncCompareExchange16 ( volatile UINT32 *Ptr32; =20 /* Check that ptr is naturally aligned */ - ASSERT (!((UINT64)Value & (sizeof (Value) - 1))); + ASSERT (!((UINT64)Value & (sizeof (UINT16) - 1))); =20 /* Mask inputs to the correct size. */ Mask =3D (((~0UL) - (1UL << (0)) + 1) & (~0UL >> (64 - 1 -= ((sizeof (UINT16) * 8) - 1)))); --=20 2.27.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#103744): https://edk2.groups.io/g/devel/message/103744 Mute This Topic: https://groups.io/mt/98538295/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-