From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 444673858C52 for ; Thu, 25 Jan 2024 07:38:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 444673858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 444673858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706168337; cv=none; b=qqUjkEsL2bqiqMQw2fSd0PpUSfTJ9g2JFTPKgJl5W5x/CmyyH50sdrt6reKKIVvgCTieCBtT2mtcFF5u+mcE1/vtibUyheUrlRCoYf4Bs6B/kfSHgjR6pSSjXPJCilwk9wlAO0Fs/glSfpOoSYQ7axscHv4AtWR3VNw+O4mreX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706168337; c=relaxed/simple; bh=GkGCTIbEE0LmtXB2JYBHMWXYiMy+cUcHbiPIiYidKuU=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=Nf5hjZNh84iSb+Tl/NvvKDA4lPjFTDYWfJK7iIuhn3aJ0CgnzaLMx7mAM0YWfaH1g0INsZbvspeRaaucAenJDGPt8JSH6E7l5wRZxxvNoiv8RcCH0gBl3hQJ8oRzVcIqjXyKJY05bJ2SB85h6hXcTLFWz0zCzDM4EPd6/3zGyos= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.20.4.107]) by gateway (Coremail) with SMTP id _____8CxLOsIELJllm4FAA--.10150S3; Thu, 25 Jan 2024 15:38:49 +0800 (CST) Received: from [10.20.4.107] (unknown [10.20.4.107]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Ax3c4HELJlW+kYAA--.43129S3; Thu, 25 Jan 2024 15:38:47 +0800 (CST) Subject: Re:[pushed] [PATCH] LoongArch: Disable TLS type symbols from generating non-zero offsets. To: gcc-patches@gcc.gnu.org Cc: xry111@xry111.site, i@xen0n.name, xuchenghua@loongson.cn References: <20240123035435.1402-1-chenglulu@loongson.cn> From: chenglulu Message-ID: Date: Thu, 25 Jan 2024 15:38:47 +0800 User-Agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20240123035435.1402-1-chenglulu@loongson.cn> Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8Ax3c4HELJlW+kYAA--.43129S3 X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj93XoW7ZF1UCr45XrW5CrW3tF1DArc_yoW8uF13pr srAr47AF4rGrnrW3yDK3Z8XwsxG3srWw42ga4Yqry0kF92q34DXF93JFWjg3WUWws3XF92 qFyS9FZxX3W8A3XCm3ZEXasCq-sJn29KB7ZKAUJUUUU5529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1Y6r17McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07 AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj xVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r 1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU1QV y3UUUUU== X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_STOCKGEN,MIME_CHARSET_FARAWAY,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: Pushed to r14-8412. ÔÚ 2024/1/23 ÉÏÎç11:54, Lulu Cheng дµÀ: > TLS gd ld and ie type symbols will generate corresponding GOT entries, > so non-zero offsets cannot be generated. > The address of TLS le type symbol+addend is not implemented in binutils, > so non-zero offset is not generated here for the time being. > > gcc/ChangeLog: > > * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): > For symbols of type tls, non-zero Offset is not generated. > --- > gcc/config/loongarch/loongarch.cc | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc > index 82467474288..f2ce1f6906d 100644 > --- a/gcc/config/loongarch/loongarch.cc > +++ b/gcc/config/loongarch/loongarch.cc > @@ -1924,11 +1924,7 @@ loongarch_symbolic_constant_p (rtx x, enum loongarch_symbol_type *symbol_type) > x = UNSPEC_ADDRESS (x); > } > else if (SYMBOL_REF_P (x) || LABEL_REF_P (x)) > - { > - *symbol_type = loongarch_classify_symbol (x); > - if (*symbol_type == SYMBOL_TLS) > - return true; > - } > + *symbol_type = loongarch_classify_symbol (x); > else > return false; > > @@ -1939,17 +1935,21 @@ loongarch_symbolic_constant_p (rtx x, enum loongarch_symbol_type *symbol_type) > relocations. */ > switch (*symbol_type) > { > - case SYMBOL_TLS_IE: > - case SYMBOL_TLS_LE: > - case SYMBOL_TLSGD: > - case SYMBOL_TLSLDM: > case SYMBOL_PCREL: > case SYMBOL_PCREL64: > /* GAS rejects offsets outside the range [-2^31, 2^31-1]. */ > return sext_hwi (INTVAL (offset), 32) == INTVAL (offset); > > + /* The following symbol types do not allow non-zero offsets. */ > case SYMBOL_GOT_DISP: > + case SYMBOL_TLS_IE: > + case SYMBOL_TLSGD: > + case SYMBOL_TLSLDM: > case SYMBOL_TLS: > + /* From an implementation perspective, tls_le symbols are allowed to > + have non-zero offsets, but currently binutils has not added support, > + so the generation of non-zero offsets is prohibited here. */ > + case SYMBOL_TLS_LE: > return false; > } > gcc_unreachable ();