diff options
Diffstat (limited to 'ld/testsuite/ld-x86-64/tlsld3.s')
-rw-r--r-- | ld/testsuite/ld-x86-64/tlsld3.s | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ld/testsuite/ld-x86-64/tlsld3.s b/ld/testsuite/ld-x86-64/tlsld3.s new file mode 100644 index 0000000000..9bcdfbd568 --- /dev/null +++ b/ld/testsuite/ld-x86-64/tlsld3.s @@ -0,0 +1,27 @@ + .text + .globl _start +_start: +1: movabsq $_GLOBAL_OFFSET_TABLE_-1b, %r11 + pushq %rbx + pushq %rbx + leaq 1b(%rip), %rbx + addq %r11, %rbx + + /* LD, -mcmodel=large */ + leaq foo@tlsld(%rip), %rdi + movabsq $__tls_get_addr@pltoff, %rax + addq %rbx, %rax + call *%rax + + movl foo@dtpoff(%rax), %eax + + popq %rbx + popq %rbx + ret + .globl foo + .section .tdata,"awT",@progbits + .align 4 + .type foo, @object + .size foo, 4 +foo: + .long 100 |