annotate lld/test/ELF/tls-opt.s @ 192:d7606dcf6fce

Added tag llvm10 for changeset 0572611fdcc8
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 18:01:34 +0900
parents 0572611fdcc8
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // REQUIRES: x86
anatofuz
parents:
diff changeset
2 // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
anatofuz
parents:
diff changeset
3 // RUN: ld.lld %t.o -o %t1
anatofuz
parents:
diff changeset
4 // RUN: llvm-readobj -r %t1 | FileCheck --check-prefix=NORELOC %s
anatofuz
parents:
diff changeset
5 // RUN: llvm-objdump -d --no-show-raw-insn %t1 | FileCheck --check-prefix=DISASM %s
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // NORELOC: Relocations [
anatofuz
parents:
diff changeset
8 // NORELOC-NEXT: ]
anatofuz
parents:
diff changeset
9
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
10 // DISASM: <_start>:
150
anatofuz
parents:
diff changeset
11 // DISASM-NEXT: movq $-8, %rax
anatofuz
parents:
diff changeset
12 // DISASM-NEXT: movq $-8, %r15
anatofuz
parents:
diff changeset
13 // DISASM-NEXT: leaq -8(%rax), %rax
anatofuz
parents:
diff changeset
14 // DISASM-NEXT: leaq -8(%r15), %r15
anatofuz
parents:
diff changeset
15 // DISASM-NEXT: addq $-8, %rsp
anatofuz
parents:
diff changeset
16 // DISASM-NEXT: addq $-8, %r12
anatofuz
parents:
diff changeset
17 // DISASM-NEXT: movq $-4, %rax
anatofuz
parents:
diff changeset
18 // DISASM-NEXT: movq $-4, %r15
anatofuz
parents:
diff changeset
19 // DISASM-NEXT: leaq -4(%rax), %rax
anatofuz
parents:
diff changeset
20 // DISASM-NEXT: leaq -4(%r15), %r15
anatofuz
parents:
diff changeset
21 // DISASM-NEXT: addq $-4, %rsp
anatofuz
parents:
diff changeset
22 // DISASM-NEXT: addq $-4, %r12
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 // LD to LE:
anatofuz
parents:
diff changeset
25 // DISASM-NEXT: movq %fs:0, %rax
anatofuz
parents:
diff changeset
26 // DISASM-NEXT: leaq -8(%rax), %rcx
anatofuz
parents:
diff changeset
27 // DISASM-NEXT: movq %fs:0, %rax
anatofuz
parents:
diff changeset
28 // DISASM-NEXT: leaq -4(%rax), %rcx
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 // GD to LE:
anatofuz
parents:
diff changeset
31 // DISASM-NEXT: movq %fs:0, %rax
anatofuz
parents:
diff changeset
32 // DISASM-NEXT: leaq -8(%rax), %rax
anatofuz
parents:
diff changeset
33 // DISASM-NEXT: movq %fs:0, %rax
anatofuz
parents:
diff changeset
34 // DISASM-NEXT: leaq -4(%rax), %rax
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 // LD to LE:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37 // DISASM: <_DTPOFF64_1>:
150
anatofuz
parents:
diff changeset
38 // DISASM-NEXT: clc
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
39 // DISASM: <_DTPOFF64_2>:
150
anatofuz
parents:
diff changeset
40 // DISASM-NEXT: cld
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 .type tls0,@object
anatofuz
parents:
diff changeset
43 .section .tbss,"awT",@nobits
anatofuz
parents:
diff changeset
44 .globl tls0
anatofuz
parents:
diff changeset
45 .align 4
anatofuz
parents:
diff changeset
46 tls0:
anatofuz
parents:
diff changeset
47 .long 0
anatofuz
parents:
diff changeset
48 .size tls0, 4
anatofuz
parents:
diff changeset
49
anatofuz
parents:
diff changeset
50 .type tls1,@object
anatofuz
parents:
diff changeset
51 .globl tls1
anatofuz
parents:
diff changeset
52 .align 4
anatofuz
parents:
diff changeset
53 tls1:
anatofuz
parents:
diff changeset
54 .long 0
anatofuz
parents:
diff changeset
55 .size tls1, 4
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 .section .text
anatofuz
parents:
diff changeset
58 .globl _start
anatofuz
parents:
diff changeset
59 _start:
anatofuz
parents:
diff changeset
60 movq tls0@GOTTPOFF(%rip), %rax
anatofuz
parents:
diff changeset
61 movq tls0@GOTTPOFF(%rip), %r15
anatofuz
parents:
diff changeset
62 addq tls0@GOTTPOFF(%rip), %rax
anatofuz
parents:
diff changeset
63 addq tls0@GOTTPOFF(%rip), %r15
anatofuz
parents:
diff changeset
64 addq tls0@GOTTPOFF(%rip), %rsp
anatofuz
parents:
diff changeset
65 addq tls0@GOTTPOFF(%rip), %r12
anatofuz
parents:
diff changeset
66 movq tls1@GOTTPOFF(%rip), %rax
anatofuz
parents:
diff changeset
67 movq tls1@GOTTPOFF(%rip), %r15
anatofuz
parents:
diff changeset
68 addq tls1@GOTTPOFF(%rip), %rax
anatofuz
parents:
diff changeset
69 addq tls1@GOTTPOFF(%rip), %r15
anatofuz
parents:
diff changeset
70 addq tls1@GOTTPOFF(%rip), %rsp
anatofuz
parents:
diff changeset
71 addq tls1@GOTTPOFF(%rip), %r12
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 // LD to LE
anatofuz
parents:
diff changeset
74 leaq tls0@tlsld(%rip), %rdi
anatofuz
parents:
diff changeset
75 callq __tls_get_addr@PLT
anatofuz
parents:
diff changeset
76 leaq tls0@dtpoff(%rax),%rcx
anatofuz
parents:
diff changeset
77 leaq tls1@tlsld(%rip), %rdi
anatofuz
parents:
diff changeset
78 callq __tls_get_addr@PLT
anatofuz
parents:
diff changeset
79 leaq tls1@dtpoff(%rax),%rcx
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 // GD to LE
anatofuz
parents:
diff changeset
82 .byte 0x66
anatofuz
parents:
diff changeset
83 leaq tls0@tlsgd(%rip),%rdi
anatofuz
parents:
diff changeset
84 .word 0x6666
anatofuz
parents:
diff changeset
85 rex64
anatofuz
parents:
diff changeset
86 call __tls_get_addr@plt
anatofuz
parents:
diff changeset
87 .byte 0x66
anatofuz
parents:
diff changeset
88 leaq tls1@tlsgd(%rip),%rdi
anatofuz
parents:
diff changeset
89 .word 0x6666
anatofuz
parents:
diff changeset
90 rex64
anatofuz
parents:
diff changeset
91 call __tls_get_addr@plt
anatofuz
parents:
diff changeset
92
anatofuz
parents:
diff changeset
93 // LD to LE
anatofuz
parents:
diff changeset
94 _DTPOFF64_1:
anatofuz
parents:
diff changeset
95 .quad tls0@DTPOFF
anatofuz
parents:
diff changeset
96 nop
anatofuz
parents:
diff changeset
97
anatofuz
parents:
diff changeset
98 _DTPOFF64_2:
anatofuz
parents:
diff changeset
99 .quad tls1@DTPOFF
anatofuz
parents:
diff changeset
100 nop