aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite/pr20216_ld.S
diff options
context:
space:
mode:
Diffstat (limited to 'gold/testsuite/pr20216_ld.S')
-rw-r--r--gold/testsuite/pr20216_ld.S47
1 files changed, 47 insertions, 0 deletions
diff --git a/gold/testsuite/pr20216_ld.S b/gold/testsuite/pr20216_ld.S
new file mode 100644
index 0000000..a3cbc96
--- /dev/null
+++ b/gold/testsuite/pr20216_ld.S
@@ -0,0 +1,47 @@
+ .text
+ .p2align 4,,15
+ .globl get_ld
+ .type get_ld, @function
+get_ld:
+ subq $8, %rsp
+ leaq ld@tlsld(%rip), %rdi
+ call __tls_get_addr@PLT
+ addq $8, %rsp
+ addq $ld@dtpoff, %rax
+ ret
+ .size get_ld, .-get_ld
+ .text
+ .p2align 4,,15
+ .globl set_ld
+ .type set_ld, @function
+set_ld:
+ pushq %rbx
+ movl %edi, %ebx
+ leaq ld@tlsld(%rip), %rdi
+ call *__tls_get_addr@GOTPCREL(%rip)
+ movl %ebx, ld@dtpoff(%rax)
+ popq %rbx
+ ret
+ .size set_ld, .-set_ld
+ .text
+ .p2align 4,,15
+ .globl test_ld
+ .type test_ld, @function
+test_ld:
+ pushq %rbx
+ movl %edi, %ebx
+ leaq ld@tlsld(%rip), %rdi
+ call *__tls_get_addr@GOTPCREL(%rip)
+ cmpl %ebx, ld@dtpoff(%rax)
+ popq %rbx
+ sete %al
+ movzbl %al, %eax
+ ret
+ .size test_ld, .-test_ld
+ .section .tbss,"awT",@nobits
+ .align 4
+ .type ld, @object
+ .size ld, 4
+ld:
+ .zero 4
+ .section .note.GNU-stack,"",@progbits