diff options
Diffstat (limited to 'ld/testsuite/ld-x86-64/tlspie1.s')
-rw-r--r-- | ld/testsuite/ld-x86-64/tlspie1.s | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ld/testsuite/ld-x86-64/tlspie1.s b/ld/testsuite/ld-x86-64/tlspie1.s new file mode 100644 index 0000000..2e9db66 --- /dev/null +++ b/ld/testsuite/ld-x86-64/tlspie1.s @@ -0,0 +1,58 @@ + .text + .globl __tls_get_addr + .type __tls_get_addr, @function +__tls_get_addr: + ret + .size __tls_get_addr, .-__tls_get_addr +.globl _start + .type _start, @function +_start: + movq foo3@GOTTPOFF(%rip), %rax + pushq %rbx + movl %fs:foo2@TPOFF, %ebx + addl %fs:foo1@TPOFF, %ebx + addl %fs:(%rax), %ebx + leaq foo4@TLSLD(%rip), %rdi + call __tls_get_addr@PLT + addl foo4@DTPOFF(%rax), %ebx + .byte 0x66 + leaq foo5@TLSGD(%rip), %rdi + .value 0x6666 + rex64 + call __tls_get_addr@PLT + addl (%rax), %ebx + movl %ebx, %eax + popq %rbx + ret + .size _start, .-_start +.globl foo1 + .section .tbss,"awT",@nobits + .align 4 + .type foo1, @object + .size foo1, 4 +foo1: + .zero 4 +.globl foo2 + .align 4 + .type foo2, @object + .size foo2, 4 +foo2: + .zero 4 +.globl foo3 + .align 4 + .type foo3, @object + .size foo3, 4 +foo3: + .zero 4 +.globl foo4 + .align 4 + .type foo4, @object + .size foo4, 4 +foo4: + .zero 4 +.globl foo5 + .align 4 + .type foo5, @object + .size foo5, 4 +foo5: + .zero 4 |