From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-m25469.xmail.ntesmail.com (mail-m25469.xmail.ntesmail.com [103.129.254.69]) by sourceware.org (Postfix) with ESMTPS id 1D89F385842E for ; Sat, 2 Dec 2023 06:53:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1D89F385842E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=stu.xupt.edu.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=stu.xupt.edu.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1D89F385842E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=103.129.254.69 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701500041; cv=none; b=ixUZXMwO4COoQrQGg1Wvi3qYBdBw6sdmm1Fopi6ZmfLOdK44wnPcuu4aNsSd+YEqQf+U/h18bwsKhuFJLE4rI0HOjpmzfG7/ekBlzNQjydn5Zvgt5bZyLvn84ZMzo5Pc4rfDJ1to/DAAMJdchlwY42vVPIoq7aeYmJtbjz8eZWc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701500041; c=relaxed/simple; bh=CVAoydc2CItdBJkPrWjKJyM0B9ZAypkhs3r3pt0aQs8=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=IJ0kNX9eyzelTbkbF3tY+Qxc80XZUqJ46DUpbyDMe9sP9tlHMoe0I9ezgozCNA2EkzGYDH5Sd6NgkZbPXUDp0II8s09zEPJ3mOZNXKz+bEDUhRZnRP9t9kJYuUtt2eAZ8s/sKR/LzYWvOBIKuXAfBYtwm6cTelVSaDcCK8yl4Fk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from ubuntu.localdomain (unknown [223.104.204.129]) by mail-m121144.qiye.163.com (Hmail) with ESMTPA id 8B243AC00A4; Sat, 2 Dec 2023 14:53:42 +0800 (CST) From: changjiachen To: binutils@sourceware.org Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, cailulu@loongson.cn, luweining@loongson.cn, wanglei@loongson.cn, hejinyang@loongson.cn, Lazy_Linux@126.com, mengqinggang@loongson.cn, changjiachen Subject: [PATCH v2 0/5] LoongArch tls le model linker relaxation support. Date: Sat, 2 Dec 2023 14:53:29 +0800 Message-Id: <20231202065334.25904-1-changjiachen@stu.xupt.edu.cn> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWS1ZQUlXWQ8JGhUIEh9ZQVlCGR5KVh4aH04dQ0hNQ0wdHlUTARMWGhIXJBQOD1 lXWRgSC1lBWUlJSFVKS09VSUtPVUpJQllXWRYaDxIVHRRZQVlPS0hVSkpLSEpDVUpLS1VLWQY+ X-HM-Tid: 0a8c294df208b039kuuu8b243ac00a4 X-HM-MType: 10 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6Nz46NBw4DTw2LAtJGh05FxlK MCgaChBVSlVKTEtKTktLS0lPS0pJVTMWGhIXVRgTGhUcERIaGBMeFTsIDw5VAw4LD1UeHw5VGBVF WVdZEgtZQVlJSUhVSktPVUlLT1VKSUJZV1kIAVlBSENJSjcG X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,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: This is the v2 version of patches to support loongarch linker tls le model relax. Changes from v1: * Modified v1-0000-cover-letter.patch part of the explanatory content. Before Modify: example: __thread int a = 1; old insn sequence: lu12i.w $r12,%le_hi20_r(a) ori $r12,$r12,%le_lo12_r(a) add.d $r12,$r12,$r2,%le_add_r(a) li.w $r13,$r0,1 stptr.w $r13,$r12,0 new insn sequence: lu12i.w $r12,%le_hi20_r(a) add.d $r12,$r12,$r2,%le_add_r(a) li.w $r13,$r0,1 st.w $r13,$r12,%le_lo12_r(a) After Modify: example: __thread int a = 1; old insn sequence(at the O0 optimization level): lu12i.w $r12,%le_hi20(a) ori $r12,$r12,%le_lo12(a) add.d $r12,$r12,$r2 addi.w $r13,$r0,1 stptr.w $r13,$r12,0 new insn sequence(at the O0 optimization level): lu12i.w $r12,%le_hi20_r(a) add.d $r12,$r12,$r2,%le_add_r(a) addi.w $r13,$r0,1 st.w $r13,$r12,%le_lo12_r(a) changjiachen (5): LoongArch: bfd: Add support for tls le relax. LoongArch: include: Add support for tls le relax. LoongArch: opcodes: Add support for tls le relax. LoongArch: gas: Add support for tls le relax. LoongArch: ld: Add support for tls le relax. bfd/bfd-in2.h | 4 + bfd/elfnn-loongarch.c | 74 +++++++++ bfd/elfxx-loongarch.c | 50 ++++++ bfd/libbfd.h | 3 + bfd/reloc.c | 6 + gas/config/tc-loongarch.c | 12 +- gas/testsuite/gas/loongarch/reloc.d | 18 +++ gas/testsuite/gas/loongarch/reloc.s | 11 ++ include/elf/loongarch.h | 13 ++ ld/testsuite/ld-loongarch-elf/old-tls-le.s | 19 +++ .../relax-bound-check-tls-le.s | 48 ++++++ .../ld-loongarch-elf/relax-check-tls-le.s | 43 ++++++ ld/testsuite/ld-loongarch-elf/relax-tls-le.s | 17 ++ ld/testsuite/ld-loongarch-elf/relax.exp | 146 +++++++++++++++++- .../tls-relax-compatible-check-old.s | 39 +++++ opcodes/loongarch-opc.c | 1 + 16 files changed, 501 insertions(+), 3 deletions(-) create mode 100644 ld/testsuite/ld-loongarch-elf/old-tls-le.s create mode 100644 ld/testsuite/ld-loongarch-elf/relax-bound-check-tls-le.s create mode 100644 ld/testsuite/ld-loongarch-elf/relax-check-tls-le.s create mode 100644 ld/testsuite/ld-loongarch-elf/relax-tls-le.s create mode 100644 ld/testsuite/ld-loongarch-elf/tls-relax-compatible-check-old.s -- 2.40.0