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 4133C3858D28 for ; Sat, 27 Jan 2024 07:26:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4133C3858D28 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 4133C3858D28 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=1706340406; cv=none; b=lBXM6ZRHHGGbB+4tssK8A8IZk7C2b45J1J21vGeNrHnddl7B2JBz+7vQmjb42Utos/azOBJOqppTMCoV0U+XjYQNxRT/824oNKIYSeLHdPs9ZWoMee+OmCxZWoK/xHORGI8a+kcwCxAgDAkfDk8+QdaXq3/hDdkB9mIHsOiGd5A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706340406; c=relaxed/simple; bh=aU2HvMf0OFWklIConRJO5dR+UwSlK5MCtRdBNtcjuq4=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=u5B8wwE40Q7IWAO63FTxvtggRoStaUXNqEWf3m12dl6N0YdY838x4vEPYFdCVi652iH5GJ+Et3pBXK6plfJykNloInFlXBR75PWerI4JsNDZ/MbUGSgOcpOqxra88Mn740dH3xQZL0F323oB/poWKLz2/lUiqBeUKSiBdVQVDN0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.20.4.103]) by gateway (Coremail) with SMTP id _____8Axz+swsLRlA90GAA--.22823S3; Sat, 27 Jan 2024 15:26:40 +0800 (CST) Received: from [10.20.4.103] (unknown [10.20.4.103]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxdMwvsLRljZMeAA--.14506S3; Sat, 27 Jan 2024 15:26:39 +0800 (CST) Subject: Re: [PATCH v5 0/5] Add support for TLS Descriptors (TLSDESC) To: Fangrui Song Cc: binutils@sourceware.org, xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, mengqinggang@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, wanglei@loongson.cn, hejinyang@loongson.cn References: <20231222114243.1836112-1-cailulu@loongson.cn> From: Lulu Cai Message-ID: <2f3cc40c-b7fb-c432-677d-d9719d8fe827@loongson.cn> Date: Sat, 27 Jan 2024 15:26:39 +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: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8DxdMwvsLRljZMeAA--.14506S3 X-CM-SenderInfo: xfdlz3tox6z05rqj20fqof0/1tbiAQAJB2WzbWEGcwABsh X-Coremail-Antispam: 1Uk129KBj93XoWxuFW3CFW3Jr1fCw4UGF1fZrc_yoW7Cw1Dp3 y7ZFnYkF4rCFsrWFyDW3y5Xr1kXa1xGrW2qa4Sqr1Skrs3try0qwn2yrZxJFW5J3y8J34F vw1Iqw15uF1DtrbCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUvYb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r106r15M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6r4j6r4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc 02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAF wI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2xFo4 CEbIxvr21l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG 67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MI IYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E 14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJV W8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07j8yCJU UUUU= X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,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: On 1/27/24 10:54 AM, Fangrui Song wrote: > On Fri, Dec 22, 2023 at 3:42 AM Lulu Cai wrote: >> v5 mainly changes the relocation name and adds relocation >> for immediate value field of ld.w/d. >> >> 1. R_LARCH_TLS_DESC_ADD_PC_LO12 -> R_LARCH_TLS_DESC_PC_LO12. >> R_LARCH_TLS_DESC_LD(113) -> R_LARCH_TLS_DESC_LD(119) >> >> 2. Added 32 abs test case. >> >> 3. Added R_LARCH_TLS_DESC_LD relocation to the immediate field of >> the ld.w/d instruction. >> >> Such as: >> pcalau12i $r4,%desc_pc_hi20(var) >> addi.d $r4,$r4,%desc_pc_lo12(var) >> ld.d $r1,$r4,0 -> ld.d $r1,$r4,%desc_ld(var) >> jirl $r1,$r1,%desc_call(var) >> addi.d $a0,$a0,$tp >> >> Lulu Cai (4): >> LoongArch: Add new relocs and macro for TLSDESC. >> LoongArch: Add support for TLSDESC in ld. >> LoongArch: Add tls transition support. >> LoongArch: Add testsuit for DESC and tls transition and tls >> relaxation. >> >> mengqinggang (1): >> LoongArch: Add support for TLS LD/GD/DESC relaxation >> >> bfd/bfd-in2.h | 15 + >> bfd/elfnn-loongarch.c | 552 +++++++++++++++++- >> bfd/elfxx-loongarch.c | 270 ++++++++- >> bfd/libbfd.h | 15 + >> bfd/reloc.c | 36 ++ >> gas/config/tc-loongarch.c | 20 +- >> gas/testsuite/gas/loongarch/macro_op.d | 128 ++-- >> gas/testsuite/gas/loongarch/macro_op_32.d | 120 ++-- >> .../gas/loongarch/macro_op_large_abs.d | 160 ++--- >> .../gas/loongarch/macro_op_large_pc.d | 160 ++--- >> gas/testsuite/gas/loongarch/tlsdesc_32.d | 28 + >> gas/testsuite/gas/loongarch/tlsdesc_32.s | 12 + >> gas/testsuite/gas/loongarch/tlsdesc_32_abs.d | 26 + >> gas/testsuite/gas/loongarch/tlsdesc_32_abs.s | 8 + >> gas/testsuite/gas/loongarch/tlsdesc_64.d | 28 + >> gas/testsuite/gas/loongarch/tlsdesc_64.s | 12 + >> .../gas/loongarch/tlsdesc_large_abs.d | 34 ++ >> .../gas/loongarch/tlsdesc_large_abs.s | 12 + >> .../gas/loongarch/tlsdesc_large_pc.d | 38 ++ >> .../gas/loongarch/tlsdesc_large_pc.s | 17 + >> include/elf/loongarch.h | 26 +- >> include/opcode/loongarch.h | 6 + >> ld/testsuite/ld-loongarch-elf/desc-ie.d | 16 + >> ld/testsuite/ld-loongarch-elf/desc-ie.s | 18 + >> ld/testsuite/ld-loongarch-elf/desc-le.d | 15 + >> ld/testsuite/ld-loongarch-elf/desc-le.s | 14 + >> ld/testsuite/ld-loongarch-elf/desc-norelax.d | 16 + >> ld/testsuite/ld-loongarch-elf/desc-norelax.s | 5 + >> ld/testsuite/ld-loongarch-elf/desc-relax.d | 15 + >> ld/testsuite/ld-loongarch-elf/desc-relax.s | 5 + >> ld/testsuite/ld-loongarch-elf/ie-le.d | 13 + >> ld/testsuite/ld-loongarch-elf/ie-le.s | 11 + >> .../ld-loongarch-elf/ld-loongarch-elf.exp | 9 + >> ld/testsuite/ld-loongarch-elf/macro_op.d | 391 +++++++------ >> ld/testsuite/ld-loongarch-elf/macro_op_32.d | 120 ++-- >> ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d | 56 ++ >> ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s | 65 +++ >> opcodes/loongarch-opc.c | 54 ++ >> 38 files changed, 1980 insertions(+), 566 deletions(-) >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.d >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.s >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32_abs.d >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32_abs.s >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.d >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.s >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.d >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.s >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.d >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.s >> create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d >> create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s >> >> -- >> 2.43.0 >> > Technically you could define R_LARCH_TLS_DESC to be shared by 32-bit > and 64-bit arches, like RELATIVE/IRELATIVE/JUMP_SLOT. > That said, I see that the change has been made. Yes that's totally fine. The main reason here is because other TLS types of dynamic relocation have 32-bit and 64-bit, so DESC is distinguished.​​ > It seems that la.tls.desc expands to 4 instructions with 2 > R_LARCH_RELAX relocations? > I think one R_LARCH_RELAX is sufficient to implement relaxation. > > RISC-V has a similar problem and I have suggested > https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/421 This is done because the current psABI stipulates that the instruction to be deleted must be followed by an R_LARCH_RELAX relocation. In the future, we will try to implement la.tls.desc with four instructions using only one R_LARCH_RELAX implementation.