This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [AArch64] Don't generate GOT entry for large model TLS LE relocation
- From: Jiong Wang <jiong dot wang at foss dot arm dot com>
- To: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Mon, 4 Jan 2016 12:40:44 +0000
- Subject: Re: [AArch64] Don't generate GOT entry for large model TLS LE relocation
- Authentication-results: sourceware.org; auth=none
- References: <567AD20C dot 4040007 at foss dot arm dot com> <CAFqB+PwFOFLw0ANtcPyygR_=VJCnzmaztaFXsCCKryg0-2JYRg at mail dot gmail dot com>
On 23/12/15 18:10, Marcus Shawcroft wrote:
On 23 December 2015 at 16:55, Jiong Wang <jiong.wang@foss.arm.com> wrote:
This patch revert the following commit
commit b7a944fea3a0194d81f6de4d958f3a1d2c6ad03a
Author: Renlin Li <renlin.li@arm.com>
Date: Fri Oct 2 17:02:53 2015 +0100
I have not looked at this in detail, I'm out of the office at the
moment, but I did notice that this is more than a revert!
Please split this into two patches.
1) The revert request.
2) The new functionality you want to add.
OK. Attachment is a pure revert of related commits:
the following two commits:
===
commit b7a944fea3a0194d81f6de4d958f3a1d2c6ad03a
Author: Renlin Li <renlin.li@arm.com>
Date: Fri Oct 2 17:02:53 2015 +0100
[BFD][AARCH64]Create GOT section for TLSLE_MOVW_TPREL_G(1, 1_NC, 2).
commit ac734732481451698ee23990aaa64907e56dd082
Author: Renlin Li <renlin.li@arm.com>
Date: Fri Oct 2 17:22:36 2015 +0100
[BFD][AARCH64]Add TLSGD relaxation support under large memory model.
And tls relaxation part of:
===
commit 0484b4549e9e2802e2f9db30a61f4b2a76332a8f
Author: Renlin Li <renlin.li@arm.com>
Date: Fri Oct 2 17:43:08 2015 +0100
[LD][AARCH64]Add TLSDESC support for large memory model.
no ld regression on both master and 2.26 branch.
OK to master and 2.26 branch?
2016-01-04 Jiong Wang <jiong.wang@arm.com>
bfd/
Revert
2015-10-02 Renlin Li <renlin.li@arm.com>
* elfnn-aarch64.c (aarch64_tls_transition_without_check): Add
relax transitions for TLSDESC_ADD, TLSDESC_LDR, TLSDESC_OFF_G0_NC,
TLSDESC_OFF_G1.
(aarch64_tls_transition_without_check): Add relaxation support.
(elfNN_aarch64_tls_relax): Likewise.
2015-10-02 Renlin Li <renlin.li@arm.com>
* elfnn-aarch64.c(IS_AARCH64_TLS_RELAX_RELOC):
Add relaxation support for TLSGD_MOVW_G0_NC and TLSGD_MOVW_G1.
(aarch64_tls_transition_without_check): Likewise
(elfNN_aarch64_tls_relax): Likwise.
2015-10-02 Renlin Li <renlin.li@arm.com>
* elfnn-aarch64.c (elfNN_aarch64_check_relocs): Create GOT section
for TLSLE_MOVW_TPREL_G(1, 1_NC, 2) relocation.
ld/testsuite/ld-aarch64/
Revert
2015-10-02 Renlin Li <renlin.li@arm.com>
* ld-aarch64/aarch64-elf.exp: Run new test.
* ld-aarch64/tls-relax-large-desc-ie.d: New.
* ld-aarch64/tls-relax-large-desc-ie.s: New.
* ld-aarch64/tls-relax-large-desc-le.d: New.
* ld-aarch64/tls-relax-large-desc-le.s: New.
2015-10-02 Renlin Li <renlin.li@arm.com>
* ld-aarch64/aarch64-elf.exp: run new test
* ld-aarch64/tls-relax-large-gd-ie.d: New.
* ld-aarch64/tls-relax-large-gd-ie.s: New.
* ld-aarch64/tls-relax-large-gd-le.d: New.
* ld-aarch64/tls-relax-large-gd-le.s: New.
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 70251f1..5577a96 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -209,22 +209,15 @@
|| IS_AARCH64_TLSDESC_RELOC ((R_TYPE)))
#define IS_AARCH64_TLS_RELAX_RELOC(R_TYPE) \
- ((R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_ADD \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC \
+ ((R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_CALL \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_LDNN_LO12_NC \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_LDR \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_OFF_G1 \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_LDR \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC \
- || (R_TYPE) == BFD_RELOC_AARCH64_TLSGD_MOVW_G1 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 \
|| (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_LDNN_GOTTPREL_LO12_NC \
@@ -4437,21 +4430,6 @@ aarch64_tls_transition_without_check (bfd_reloc_code_real_type r_type,
? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
: BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19);
- case BFD_RELOC_AARCH64_TLSDESC_LDR:
- return (is_local
- ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
- : BFD_RELOC_AARCH64_NONE);
-
- case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
- return (is_local
- ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC);
-
- case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
- return (is_local
- ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1);
-
case BFD_RELOC_AARCH64_TLSDESC_LDNN_LO12_NC:
case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:
return (is_local
@@ -4472,7 +4450,6 @@ aarch64_tls_transition_without_check (bfd_reloc_code_real_type r_type,
? BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
: BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19);
- case BFD_RELOC_AARCH64_TLSDESC_ADD:
case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC:
case BFD_RELOC_AARCH64_TLSDESC_CALL:
/* Instructions with these relocations will become NOPs. */
@@ -4483,18 +4460,6 @@ aarch64_tls_transition_without_check (bfd_reloc_code_real_type r_type,
case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
return is_local ? BFD_RELOC_AARCH64_NONE : r_type;
-#if ARCH_SIZE == 64
- case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
- return is_local
- ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC;
-
- case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
- return is_local
- ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1;
-#endif
-
default:
break;
}
@@ -5749,52 +5714,6 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
return bfd_reloc_continue;
}
-#if ARCH_SIZE == 64
- case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
- BFD_ASSERT (ELFNN_R_TYPE (rel[1].r_info) == AARCH64_R (TLSGD_MOVW_G0_NC));
- BFD_ASSERT (rel->r_offset + 12 == rel[2].r_offset);
- BFD_ASSERT (ELFNN_R_TYPE (rel[2].r_info) == AARCH64_R (CALL26));
-
- if (is_local)
- {
- /* Large GD->LE relaxation:
- movz x0, #:tlsgd_g1:var => movz x0, #:tprel_g2:var, lsl #32
- movk x0, #:tlsgd_g0_nc:var => movk x0, #:tprel_g1_nc:var, lsl #16
- add x0, gp, x0 => movk x0, #:tprel_g0_nc:var
- bl __tls_get_addr => mrs x1, tpidr_el0
- nop => add x0, x0, x1
- */
- rel[2].r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info),
- AARCH64_R (TLSLE_MOVW_TPREL_G0_NC));
- rel[2].r_offset = rel->r_offset + 8;
-
- bfd_putl32 (0xd2c00000, contents + rel->r_offset + 0);
- bfd_putl32 (0xf2a00000, contents + rel->r_offset + 4);
- bfd_putl32 (0xf2800000, contents + rel->r_offset + 8);
- bfd_putl32 (0xd53bd041, contents + rel->r_offset + 12);
- bfd_putl32 (0x8b000020, contents + rel->r_offset + 16);
- }
- else
- {
- /* Large GD->IE relaxation:
- movz x0, #:tlsgd_g1:var => movz x0, #:gottprel_g1:var, lsl #16
- movk x0, #:tlsgd_g0_nc:var => movk x0, #:gottprel_g0_nc:var
- add x0, gp, x0 => ldr x0, [gp, x0]
- bl __tls_get_addr => mrs x1, tpidr_el0
- nop => add x0, x0, x1
- */
- rel[2].r_info = ELFNN_R_INFO (STN_UNDEF, R_AARCH64_NONE);
- bfd_putl32 (0xd2a80000, contents + rel->r_offset + 0);
- bfd_putl32 (0x58000000, contents + rel->r_offset + 8);
- bfd_putl32 (0xd53bd041, contents + rel->r_offset + 12);
- bfd_putl32 (0x8b000020, contents + rel->r_offset + 16);
- }
- return bfd_reloc_continue;
-
- case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
- return bfd_reloc_continue;
-#endif
-
case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
return bfd_reloc_continue;
@@ -5860,7 +5779,6 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
return bfd_reloc_continue;
}
- case BFD_RELOC_AARCH64_TLSDESC_ADD:
case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC:
case BFD_RELOC_AARCH64_TLSDESC_CALL:
/* GD->IE/LE relaxation:
@@ -5870,55 +5788,6 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
bfd_putl32 (INSN_NOP, contents + rel->r_offset);
return bfd_reloc_ok;
- case BFD_RELOC_AARCH64_TLSDESC_LDR:
- if (is_local)
- {
- /* GD->LE relaxation:
- ldr xd, [gp, xn] => movk x0, #:tprel_g0_nc:var
- */
- bfd_putl32 (0xf2800000, contents + rel->r_offset);
- return bfd_reloc_continue;
- }
- else
- {
- /* GD->IE relaxation:
- ldr xd, [gp, xn] => ldr x0, [gp, xn]
- */
- insn = bfd_getl32 (contents + rel->r_offset);
- insn &= 0xffffffe0;
- bfd_putl32 (insn, contents + rel->r_offset);
- return bfd_reloc_ok;
- }
-
- case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
- /* GD->LE relaxation:
- movk xd, #:tlsdesc_off_g0_nc:var => movk x0, #:tprel_g1_nc:var, lsl #16
- GD->IE relaxation:
- movk xd, #:tlsdesc_off_g0_nc:var => movk xd, #:gottprel_g0_nc:var
- */
- if (is_local)
- bfd_putl32 (0xf2a00000, contents + rel->r_offset);
- return bfd_reloc_continue;
-
- case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
- if (is_local)
- {
- /* GD->LE relaxation:
- movz xd, #:tlsdesc_off_g1:var => movz x0, #:tprel_g2:var, lsl #32
- */
- bfd_putl32 (0xd2c00000, contents + rel->r_offset);
- return bfd_reloc_continue;
- }
- else
- {
- /* GD->IE relaxation:
- movz xd, #:tlsdesc_off_g1:var => movz xd, #:gottprel_g1:var, lsl #16
- */
- insn = bfd_getl32 (contents + rel->r_offset);
- bfd_putl32 (0xd2a00000 | (insn & 0x1f), contents + rel->r_offset);
- return bfd_reloc_continue;
- }
-
case BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
/* IE->LE relaxation:
adrp xd, :gottprel:var => movz xd, :tprel_g1:var
@@ -7213,9 +7082,6 @@ elfNN_aarch64_check_relocs (bfd *abfd, struct bfd_link_info *info,
case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
case BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:
case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
- case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
- case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
- case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2:
{
unsigned got_type;
unsigned old_got_type;
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index c5c9ad0..ec1f83d 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -186,14 +186,6 @@ run_dump_test "tls-relax-all"
run_dump_test "tls-relax-gd-le"
run_dump_test "tls-relax-gdesc-le"
run_dump_test "tls-relax-gd-ie"
-run_dump_test "tls-relax-large-gd-ie"
-run_dump_test "tls-relax-large-gd-ie-be"
-run_dump_test "tls-relax-large-gd-le"
-run_dump_test "tls-relax-large-gd-le-be"
-run_dump_test "tls-relax-large-desc-ie"
-run_dump_test "tls-relax-large-desc-ie-be"
-run_dump_test "tls-relax-large-desc-le"
-run_dump_test "tls-relax-large-desc-le-be"
run_dump_test "tls-relax-gdesc-ie"
run_dump_test "tls-relax-ie-le"
run_dump_test "tls-relax-ld-le-small"
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie-be.d b/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie-be.d
deleted file mode 100644
index ea2e59b..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie-be.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#source: tls-relax-large-desc-ie.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64-*-*
-#objdump: -dr
-#...
-
-Disassembly of section .text:
-
-0000000000010000 <test>:
- +10000: 58000101 ldr x1, 10020 \<test\+0x20\>
- +10004: 100000e2 adr x2, 10020 \<test\+0x20\>
- +10008: 8b020032 add x18, x1, x2
- +1000c: d2a00000 movz x0, #0x0, lsl #16
- +10010: f2800100 movk x0, #0x8
- +10014: f8606a40 ldr x0, \[x18,x0\]
- +10018: d503201f nop
- +1001c: d503201f nop
- +10020: 00000000 .word 0x00000000
- +10024: 0000ffe0 .word 0x0000ffe0
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.d b/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.d
deleted file mode 100644
index 680fc57..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#source: tls-relax-large-desc-ie.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64_be-*-*
-#objdump: -dr
-#...
-
-Disassembly of section .text:
-
-0000000000010000 <test>:
- +10000: 58000101 ldr x1, 10020 \<test\+0x20\>
- +10004: 100000e2 adr x2, 10020 \<test\+0x20\>
- +10008: 8b020032 add x18, x1, x2
- +1000c: d2a00000 movz x0, #0x0, lsl #16
- +10010: f2800100 movk x0, #0x8
- +10014: f8606a40 ldr x0, \[x18,x0\]
- +10018: d503201f nop
- +1001c: d503201f nop
- +10020: 0000ffe0 .word 0x0000ffe0
- +10024: 00000000 .word 0x00000000
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.s b/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.s
deleted file mode 100644
index a4d1e00..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-ie.s
+++ /dev/null
@@ -1,21 +0,0 @@
- .global var
- .section .tdata,"awT",%progbits
-var:
- .word 2
-
- .text
-test:
- ldr x1, .Lgot
- adr x2, .Lgot
- add x18, x1, x2
-
- movz x0, #:tlsdesc_off_g1:var
- movk x0, #:tlsdesc_off_g0_nc:var
- .tlsdescldr var
- ldr x1, [x18, x0]
- .tlsdescadd var
- add x0, x18, x0
- .tlsdesccall var
- blr x1
-
-.Lgot: .xword _GLOBAL_OFFSET_TABLE_ - .
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le-be.d b/ld/testsuite/ld-aarch64/tls-relax-large-desc-le-be.d
deleted file mode 100644
index 4b21e30..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le-be.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#source: tls-relax-large-desc-le.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64-*-*
-#objdump: -dr
-#...
-
-Disassembly of section .text:
-
-0000000000010000 <test>:
- +10000: 58000101 ldr x1, 10020 \<test\+0x20\>
- +10004: 100000e2 adr x2, 10020 \<test\+0x20\>
- +10008: 8b020032 add x18, x1, x2
- +1000c: d2c00000 movz x0, #0x0, lsl #32
- +10010: f2a00000 movk x0, #0x0, lsl #16
- +10014: f2800200 movk x0, #0x10
- +10018: d503201f nop
- +1001c: d503201f nop
- +10020: 00000000 .word 0x00000000
- +10024: 0000ffe0 .word 0x0000ffe0
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.d b/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.d
deleted file mode 100644
index 972682c..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.d
+++ /dev/null
@@ -1,19 +0,0 @@
-#source: tls-relax-large-desc-le.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64_be-*-*
-#objdump: -dr
-#...
-
-Disassembly of section .text:
-
-0000000000010000 <test>:
- +10000: 58000101 ldr x1, 10020 \<test\+0x20\>
- +10004: 100000e2 adr x2, 10020 \<test\+0x20\>
- +10008: 8b020032 add x18, x1, x2
- +1000c: d2c00000 movz x0, #0x0, lsl #32
- +10010: f2a00000 movk x0, #0x0, lsl #16
- +10014: f2800200 movk x0, #0x10
- +10018: d503201f nop
- +1001c: d503201f nop
- +10020: 0000ffe0 .word 0x0000ffe0
- +10024: 00000000 .word 0x00000000
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.s b/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.s
deleted file mode 100644
index ff27c4e..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-desc-le.s
+++ /dev/null
@@ -1,20 +0,0 @@
- .section .tdata
-var:
- .word 2
-
- .text
-test:
- ldr x1, .Lgot
- adr x2, .Lgot
- add x18, x1, x2
-
- movz x0, #:tlsdesc_off_g1:var
- movk x0, #:tlsdesc_off_g0_nc:var
- .tlsdescldr var
- ldr x1, [x18, x0]
- .tlsdescadd var
- add x0, x18, x0
- .tlsdesccall var
- blr x1
-
-.Lgot: .xword _GLOBAL_OFFSET_TABLE_ - .
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie-be.d b/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie-be.d
deleted file mode 100644
index c1ee0b0..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie-be.d
+++ /dev/null
@@ -1,17 +0,0 @@
-#source: tls-relax-large-gd-ie.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64-*-*
-#objdump: -dr
-#...
-0000000000010000 <test>:
- +10000: 58000121 ldr x1, 10024 <test\+0x24>
- +10004: 10000102 adr x2, 10024 <test\+0x24>
- +10008: 8b010041 add x1, x2, x1
- +1000c: d2a00000 movz x0, #0x0, lsl #16
- +10010: f2800100 movk x0, #0x8
- +10014: 58000000 ldr x0, 10014 <test\+0x14>
- +10018: d53bd041 mrs x1, tpidr_el0
- +1001c: 8b000020 add x0, x1, x0
- +10020: b9400000 ldr w0, \[x0\]
- +10024: 00000000 .word 0x00000000
- +10028: 0000ffdc .word 0x0000ffdc
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.d b/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.d
deleted file mode 100644
index 2b398db..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.d
+++ /dev/null
@@ -1,17 +0,0 @@
-#source: tls-relax-large-gd-ie.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64_be-*-*
-#objdump: -dr
-#...
-0000000000010000 <test>:
- +10000: 58000121 ldr x1, 10024 <test\+0x24>
- +10004: 10000102 adr x2, 10024 <test\+0x24>
- +10008: 8b010041 add x1, x2, x1
- +1000c: d2a00000 movz x0, #0x0, lsl #16
- +10010: f2800100 movk x0, #0x8
- +10014: 58000000 ldr x0, 10014 <test\+0x14>
- +10018: d53bd041 mrs x1, tpidr_el0
- +1001c: 8b000020 add x0, x1, x0
- +10020: b9400000 ldr w0, \[x0\]
- +10024: 0000ffdc .word 0x0000ffdc
- +10028: 00000000 .word 0x00000000
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.s b/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.s
deleted file mode 100644
index 8e0310d..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-ie.s
+++ /dev/null
@@ -1,20 +0,0 @@
- .global var
- .section .tdata,"awT",%progbits
-var:
- .word 2
-
- .text
-test:
- ldr x1, .Lgot
- adr x2, .Lgot
- add x1, x2, x1
-
- movz x0, #:tlsgd_g1:var
- movk x0, #:tlsgd_g0_nc:var
- add x0, x1, x0
- bl __tls_get_addr
- nop
- ldr w0, [x0]
-
-.Lgot:
- .dword _GLOBAL_OFFSET_TABLE_ - .
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le-be.d b/ld/testsuite/ld-aarch64/tls-relax-large-gd-le-be.d
deleted file mode 100644
index a742751..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le-be.d
+++ /dev/null
@@ -1,17 +0,0 @@
-#source: tls-relax-large-gd-le.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64-*-*
-#objdump: -dr
-#...
-0000000000010000 <test>:
- +10000: 58000121 ldr x1, 10024 <test\+0x24>
- +10004: 10000102 adr x2, 10024 <test\+0x24>
- +10008: 8b010041 add x1, x2, x1
- +1000c: d2c00000 movz x0, #0x0, lsl #32
- +10010: f2a00000 movk x0, #0x0, lsl #16
- +10014: f2800200 movk x0, #0x10
- +10018: d53bd041 mrs x1, tpidr_el0
- +1001c: 8b000020 add x0, x1, x0
- +10020: b9400000 ldr w0, \[x0\]
- +10024: 00000000 .word 0x00000000
- +10028: 0000ffdc .word 0x0000ffdc
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.d b/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.d
deleted file mode 100644
index 34d47cf..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.d
+++ /dev/null
@@ -1,17 +0,0 @@
-#source: tls-relax-large-gd-le.s
-#ld: -T relocs.ld -e0
-#notarget: aarch64_be-*-*
-#objdump: -dr
-#...
-0000000000010000 <test>:
- +10000: 58000121 ldr x1, 10024 <test\+0x24>
- +10004: 10000102 adr x2, 10024 <test\+0x24>
- +10008: 8b010041 add x1, x2, x1
- +1000c: d2c00000 movz x0, #0x0, lsl #32
- +10010: f2a00000 movk x0, #0x0, lsl #16
- +10014: f2800200 movk x0, #0x10
- +10018: d53bd041 mrs x1, tpidr_el0
- +1001c: 8b000020 add x0, x1, x0
- +10020: b9400000 ldr w0, \[x0\]
- +10024: 0000ffdc .word 0x0000ffdc
- +10028: 00000000 .word 0x00000000
diff --git a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.s b/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.s
deleted file mode 100644
index 781f6cc..0000000
--- a/ld/testsuite/ld-aarch64/tls-relax-large-gd-le.s
+++ /dev/null
@@ -1,19 +0,0 @@
- .section .tdata
-var:
- .word 2
-
- .text
-test:
- ldr x1, .Lgot
- adr x2, .Lgot
- add x1, x2, x1
-
- movz x0, #:tlsgd_g1:var
- movk x0, #:tlsgd_g0_nc:var
- add x0, x1, x0
- bl __tls_get_addr
- nop
- ldr w0, [x0]
-
-.Lgot:
- .dword _GLOBAL_OFFSET_TABLE_ - .