Message ID | 20231214025049.1629419-1-cailulu@loongson.cn |
---|---|
Headers |
Return-Path: <binutils-bounces+ouuuleilei=gmail.com@sourceware.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:3b04:b0:fb:cd0c:d3e with SMTP id c4csp8283835dys; Wed, 13 Dec 2023 18:51:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IECWws7/fPVON+XfgbsuGVdfKHo49CSxhxhlKBCRnp5x+dbnbOaiWTpBmjgpfVH27UD4uoB X-Received: by 2002:a05:6214:f67:b0:67f:ba4:14a7 with SMTP id iy7-20020a0562140f6700b0067f0ba414a7mr139911qvb.57.1702522275055; Wed, 13 Dec 2023 18:51:15 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1702522275; cv=pass; d=google.com; s=arc-20160816; b=CQYeYsV08czDqvkHPRG9bko6ZsqaewgShwzuh/s1CnropYXeJZXcPL7RcJg7r8lNQl e83EDplxeLUvcNkNxsgwQCMMZ7Un6ZHrwhq369NxDvyGUPI9Wd40OVj/cmjIjZ2+sORe 1BuDN1Ff151NFdkwQq7d1hEAZfIuXE35vSoVcgur4Qbm2UeYWX0iU8Tcf6Ah3hQj3WYC jh0O1F8v/6kPIq6ReHizsMz1cTMryAxaoegC+r9EXfGzY3iGPBlwnRdpfxR9u8du7JO8 05nfc72UAGGVP1W3qanfMLKF+4TuhSGeV9fS1t91eyyOI1Wkf85JcVyjhH7dpkOGd0g+ hPlg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:arc-filter :dmarc-filter:delivered-to; bh=b+ZoSIT6RfDIMlELWrWRGVwGvNnqoHy//To7oSqGcKY=; fh=FvlVQEmCpm5H8oBXQswexzCupeeQXnbssobXN+3R2Wg=; b=xUMk7ZGMW4BHRnQDKvq1VEaxa5Ppa32NKfN+YeY4i2hxSRjxarAxlud2FDfaTIh4XG 7Mz4milV9QHspkuFvixh0b2mQ5g5uBCK10+DmBbe5VCQHeZzJNO1SGvbFaK9uURl3PPM 1R5dfucDNClhpxs0R8XMUOqiA5pw6LFS5tGm/aIu8/FBv9j+12ZBdkgAkbsJ4gsBtwyF tdozwnC1kY5IKt1jnzClfQVrSS+JXcySa0pInrZlaoeQrpaFDDqZly+97cMP1dQQ+8iH s3OMF/n1LzN+L18k39nt5L+9xZO9XnYjjJv7AMSiYNEZG/LvKGJs8OSbBYd8E7SpbVjq C3sQ== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id o11-20020a056214180b00b0067abb4992absi14348202qvw.212.2023.12.13.18.51.14 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 18:51:15 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BB157385E02E for <ouuuleilei@gmail.com>; Thu, 14 Dec 2023 02:51:14 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id CFC00385B524 for <binutils@sourceware.org>; Thu, 14 Dec 2023 02:51:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CFC00385B524 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 CFC00385B524 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=1702522269; cv=none; b=GbtBPNWeKeqWQIXPhe8zzwmzS7zWcx2bXPsLmrmf+J7H35t8u4btM1rYGdkS3IBNYsETkvbUOC7BRrmxNhbd1qlmIDTUHO94OVrV44ckT09AEjRw5e0pRELzMJd6rVs5EpsfjYI64MPacOlf592121eXTvbOubj2TT8qkUtqPag= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702522269; c=relaxed/simple; bh=+k7rncUGsu5xJ+MrPR9p8rkkpYpcONQGWvmbbY10WHA=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=tQCjVQzmqBd2jjVTRn/tkiAbZzmOHlysSRQmwt1BXkTICGEI73mu4lXJOU7/6pDRzmtc/y8rn6yOR+jaDOuCl07SPHQdxokiHja3gAOdWrvjGXTXp8wEeq91Yu8/fHbuk8yypYyyABim0ADirOTTTa9lvfWS1htGcYfJMI0C6ys= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.2.6.5]) by gateway (Coremail) with SMTP id _____8CxRPCYbXplP+YAAA--.5186S3; Thu, 14 Dec 2023 10:51:04 +0800 (CST) Received: from 5.5.5 (unknown [10.2.6.5]) by localhost.localdomain (Coremail) with SMTP id AQAAf8CxOXOYbXplPIQDAA--.4894S4; Thu, 14 Dec 2023 10:51:04 +0800 (CST) From: Lulu Cai <cailulu@loongson.cn> To: binutils@sourceware.org Cc: 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, Lulu Cai <cailulu@loongson.cn> Subject: [PATCH v3 0/5] LoongArch: Add support for TLS Descriptors (TLSDESC) Date: Thu, 14 Dec 2023 10:50:44 +0800 Message-Id: <20231214025049.1629419-1-cailulu@loongson.cn> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: AQAAf8CxOXOYbXplPIQDAA--.4894S4 X-CM-SenderInfo: xfdlz3tox6z05rqj20fqof0/1tbiAQAFB2V6Zi0AMAABsm X-Coremail-Antispam: 1Uk129KBj93XoW3Gr48ZF1DWw43CFykZry7Jwc_yoW7GFW8pa y5ZF9Yk3W8uFsrXFyDWay5X3Z5XayxGrW2ga4ftr1akwsaqry0vwn7trZxXay5J3yqy34f Z3W0yw13WF1UJrbCm3ZEXasCq-sJn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUk2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r106r15M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVW8JVWxJwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2 Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s02 6x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0x vE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE 42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY6I8E87Iv6x kF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUcyxRUUUUU X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785222722031776227 X-GMAIL-MSGID: 1785223997279488355 |
Series |
LoongArch: Add support for TLS Descriptors (TLSDESC)
|
|
Message
Lulu Cai
Dec. 14, 2023, 2:50 a.m. UTC
PATCH 5/5 of v2 was not sent due to network issues and is now resent as v3. In v3, the following changes have been made: 1. The instruction sequences of DESC is modified. 2. Add new tls transition, DESC->IE and IE->LE are supported. 3. Add relaxation for DESC/GD/LD. The detailed description is as follows: 1. The new instruction sequences is: pcalau12i $a0,%desc_pc_hi20(var) #R_LARCH_TLS_DESC_PC_HI20 addi.d $a0,$a0,%desc_add_pc_lo12(var) #R_LARCH_TLS_DESC_ADD_PC_LO12 ld.d $ra,$a0,%desc_ld(var) #R_LARCH_TLS_DESC_LD jirl $ra,$ra,%desc_call(var) #R_LARCH_TLS_DESC_CALL add.d $t0,$a0,$tp 2. For DESC->IE: pcalau12i $a0,%desc_pc_hi20(var) => pcalau12i $a0,%ie_pc_hi20(var) addi.d $a0,$a0,%desc_add_pc_lo12(var) => ld.d $a0,%ie_pc_lo12(var) ld.d $ra,$a0,%desc_ld(var) => NOP jirl $ra,$ra,%desc_call(var) => NOP add.d $t0,$a0,$tp add.d $t0,$a0,$tp For IE->LE: pcalau12i $a0,%ie_pc_hi20(var) => lu12i.w $a0,%le_hi20(var) ld.d $a0,$a0,%ie_pc_lo12(var) => ori $a0,$a0,%le_lo12(var) add.d $t0,$a0,$tp add.d $t0,$a0,$tp 3. The instruction sequence of DESC/GD/LD is relaxed when type transition cannot be performed. For DESC: pcalau12i $a0,%desc_pc_hi20(var) addi.d $a0,$a0,%desc_add_pc_lo12(var) ld.d $ra,$a0,%desc_ld(var) jirl $ra,$ra,%desc_call(var) add.d $t0,$a0,$tp after relaxation is: pcaddi $a0,%desc_pcrel_20(var) #R_LARCH_TLS_DESC_PCREL20_S2 ld.d $ra,$a0,%desc_ld(var) jirl $ra,$ra,%desc_call(var) add.d $t0,$a0,$tp For GD: pcalau12i $a0,%gd_pc_hi20(var) addi.d $a0,$a0,%got_pc_lo12(var) bl %plt(__tls_get_addr) after relaxation is: pcaddi $a0,%gd_pcrel_20(var) #R_LARCH_TLS_GD_PCREL20_S2 bl %plt(__tls_get_addr) For LD: pcalau12i $a0,%ld_pc_hi20(var) addi.d $a0,$a0,%got_pc_lo12(var) bl %plt(__tls_get_addr) after relaxation is: pcaddi $a0,%ld_pcrel_20(var) #R_LARCH_TLS_LD_PCREL20_S2 bl %plt(__tls_get_addr) Lulu Cai (4): LoongArch: Add new relocs and macro for TLSDESC. LoongArch: Add support for TLSDESC in ld. LoongArch: Add tls transition support. Transitions between DESC->IE/LE and IE->LE are supported now. LoongArch: Add testsuit for DESC and tls transition and tls relaxation. mengqinggang (1): LoongArch: TLS LD/GD/DESC relaxation. bfd/bfd-in2.h | 15 + bfd/elfnn-loongarch.c | 509 +++++++++++++++++- bfd/elfxx-loongarch.c | 265 ++++++++- 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_64.d | 28 + gas/testsuite/gas/loongarch/tlsdesc_64.s | 12 + .../gas/loongarch/tlsdesc_large_abs.d | 21 + .../gas/loongarch/tlsdesc_large_abs.s | 9 + .../gas/loongarch/tlsdesc_large_pc.d | 22 + .../gas/loongarch/tlsdesc_large_pc.s | 13 + include/elf/loongarch.h | 26 +- include/opcode/loongarch.h | 6 + ld/testsuite/ld-loongarch-elf/desc-ie.d | 17 + 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/ie-le.d | 13 + ld/testsuite/ld-loongarch-elf/ie-le.s | 11 + .../ld-loongarch-elf/ld-loongarch-elf.exp | 7 + 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 | 57 ++ ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s | 66 +++ opcodes/loongarch-opc.c | 54 ++ 32 files changed, 1825 insertions(+), 563 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_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/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