diff options
Diffstat (limited to 'gold/testsuite/pr20216_ld.S')
-rw-r--r-- | gold/testsuite/pr20216_ld.S | 47 |
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 |