From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 07EBB3858024 for ; Sat, 26 Aug 2023 16:38:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 07EBB3858024 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1693067898; bh=JehZIdfhauaqPrGDc2Hv0A15Hle7K1gCKzNBZeQ2NdM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f47cYDg7oPo3veazy0guUq1tBxKug+tJdiHSLyvKvieERjT0UgN/hGWrnZDGYILJi QmLrcMBZelDmiJDdu+N5EQSsNej729NzNBiWG8wmUgRWTSCB/mtLTmlFva6hh1af3i rSrbkrql0SBxRYD6Ym0V45/D4mY0iPGGtupUoZxc= Received: from stargazer.. (unknown [IPv6:240e:358:1189:1100:dc73:854d:832e:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 02428659CA; Sat, 26 Aug 2023 12:38:14 -0400 (EDT) From: Xi Ruoyao To: libc-alpha@sourceware.org Cc: Adhemerval Zanella Netto , caiyinyu , WANG Xuerui , Xi Ruoyao Subject: [PATCH 3/3] LoongArch: Micro-optimize LD_PCREL Date: Sun, 27 Aug 2023 00:36:51 +0800 Message-ID: <20230826163651.35828-4-xry111@xry111.site> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230826163651.35828-1-xry111@xry111.site> References: <20230826163651.35828-1-xry111@xry111.site> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,LIKELY_SPAM_FROM,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: We are requiring Binutils >= 2.41, so explicit relocation syntax is always supported by the assembler. Use it to reduce one instruction. Signed-off-by: Xi Ruoyao --- sysdeps/unix/sysv/linux/loongarch/pointer_guard.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h index b25e353b37..d6c78687d4 100644 --- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h +++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h @@ -19,17 +19,15 @@ #ifndef POINTER_GUARD_H #define POINTER_GUARD_H -/* Load a got-relative EXPR into G, using T. - Note G and T are register names. */ +/* Load a got-relative EXPR into register G. */ #define LD_GLOBAL(G, EXPR) \ la.global G, EXPR; \ REG_L G, G, 0; -/* Load a pc-relative EXPR into G, using T. - Note G and T are register names. */ +/* Load a pc-relative EXPR into register G. */ #define LD_PCREL(G, EXPR) \ - la.pcrel G, EXPR; \ - REG_L G, G, 0; + pcalau12i G, %pc_hi20(EXPR); \ + REG_L G, G, %pc_lo12(EXPR); #if (IS_IN (rtld) \ || (!defined SHARED && (IS_IN (libc) \ -- 2.42.0