1// REQUIRES: x86
2// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
3// RUN: ld.lld %t.o -o %t1
4// RUN: llvm-readobj -r %t1 | FileCheck --check-prefix=NORELOC %s
5// RUN: llvm-objdump -d %t1 | FileCheck --check-prefix=DISASM %s
6
7// NORELOC:      Relocations [
8// NORELOC-NEXT: ]
9
10// DISASM:      Disassembly of section .text:
11// DISASM-EMPTY:
12// DISASM-NEXT: <_start>:
13// DISASM-NEXT:   movq $-8, %rax
14// DISASM-NEXT:   movq $-8, %r15
15// DISASM-NEXT:   leaq -8(%rax), %rax
16// DISASM-NEXT:   leaq -8(%r15), %r15
17// DISASM-NEXT:   addq $-8, %rsp
18// DISASM-NEXT:   addq $-8, %r12
19// DISASM-NEXT:   movq $-4, %rax
20// DISASM-NEXT:   movq $-4, %r15
21// DISASM-NEXT:   leaq -4(%rax), %rax
22// DISASM-NEXT:   leaq -4(%r15), %r15
23// DISASM-NEXT:   addq $-4, %rsp
24// DISASM-NEXT:   addq $-4, %r12
25
26.section .tbss,"awT",@nobits
27
28.type tls0,@object
29.align 4
30tls0:
31 .long 0
32 .size tls0, 4
33
34.type  tls1,@object
35.align 4
36tls1:
37 .long 0
38 .size tls1, 4
39
40.section .text
41.globl _start
42_start:
43 movq tls0@GOTTPOFF(%rip), %rax
44 movq tls0@GOTTPOFF(%rip), %r15
45 addq tls0@GOTTPOFF(%rip), %rax
46 addq tls0@GOTTPOFF(%rip), %r15
47 addq tls0@GOTTPOFF(%rip), %rsp
48 addq tls0@GOTTPOFF(%rip), %r12
49 movq tls1@GOTTPOFF(%rip), %rax
50 movq tls1@GOTTPOFF(%rip), %r15
51 addq tls1@GOTTPOFF(%rip), %rax
52 addq tls1@GOTTPOFF(%rip), %r15
53 addq tls1@GOTTPOFF(%rip), %rsp
54 addq tls1@GOTTPOFF(%rip), %r12
55