aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-i386/tls-ld1.S
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-i386/tls-ld1.S')
-rw-r--r--ld/testsuite/ld-i386/tls-ld1.S71
1 files changed, 71 insertions, 0 deletions
diff --git a/ld/testsuite/ld-i386/tls-ld1.S b/ld/testsuite/ld-i386/tls-ld1.S
new file mode 100644
index 0000000..f1295cf
--- /dev/null
+++ b/ld/testsuite/ld-i386/tls-ld1.S
@@ -0,0 +1,71 @@
+ .text
+ .p2align 4,,15
+ .globl get_ld
+ .type get_ld, @function
+get_ld:
+ pushl %ebx
+ call __x86.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ subl $8, %esp
+ leal ld@tlsldm(%ebx), %eax
+ call ___tls_get_addr@PLT
+ leal ld@dtpoff(%eax), %eax
+ addl $8, %esp
+ popl %ebx
+ ret
+ .size get_ld, .-get_ld
+ .p2align 4,,15
+ .globl set_ld
+ .type set_ld, @function
+set_ld:
+ pushl %ebx
+ call __x86.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ subl $8, %esp
+ leal ld@tlsldm(%ebx), %eax
+ call ___tls_get_addr@PLT
+ movl 16(%esp), %edx
+ leal ld@dtpoff(%eax), %eax
+ movl %edx, (%eax)
+ addl $8, %esp
+ popl %ebx
+ ret
+ .size set_ld, .-set_ld
+ .p2align 4,,15
+ .globl test_ld
+ .type test_ld, @function
+test_ld:
+ call __x86.get_pc_thunk.cx
+ addl $_GLOBAL_OFFSET_TABLE_, %ecx
+ subl $12, %esp
+ leal ld@tlsldm(%ecx), %eax
+ call *___tls_get_addr@GOT(%ecx)
+ movl 16(%esp), %ecx
+ leal ld@dtpoff(%eax), %eax
+ cmpl %ecx, (%eax)
+ sete %al
+ addl $12, %esp
+ 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 .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+ .globl __x86.get_pc_thunk.bx
+ .hidden __x86.get_pc_thunk.bx
+ .type __x86.get_pc_thunk.bx, @function
+__x86.get_pc_thunk.bx:
+ movl (%esp), %ebx
+ ret
+ .section .text.__x86.get_pc_thunk.cx,"axG",@progbits,__x86.get_pc_thunk.cx,comdat
+ .globl __x86.get_pc_thunk.cx
+ .hidden __x86.get_pc_thunk.cx
+ .type __x86.get_pc_thunk.cx, @function
+__x86.get_pc_thunk.cx:
+ movl (%esp), %ecx
+ ret
+ .section .note.GNU-stack,"",@progbits