aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-x86-64/tlspie1.s
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-x86-64/tlspie1.s')
-rw-r--r--ld/testsuite/ld-x86-64/tlspie1.s58
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