annotate lld/test/ELF/arm-tls-le32.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 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // REQUIRES: arm
anatofuz
parents:
diff changeset
2 // RUN: llvm-mc %s -o %t.o -filetype=obj -triple=armv7a-linux-gnueabi
anatofuz
parents:
diff changeset
3 // RUN: ld.lld %t.o -o %t
anatofuz
parents:
diff changeset
4 // RUN: llvm-readobj -S --dyn-relocations %t | FileCheck --check-prefix=SEC %s
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
5 // RUN: llvm-objdump -d --triple=armv7a-linux-gnueabi %t | FileCheck %s
150
anatofuz
parents:
diff changeset
6
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
7 /// Test the handling of the local exec TLS model. TLS can be resolved
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
8 /// statically for an application. The code sequences assume a thread pointer
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
9 /// in r9
150
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 .text
anatofuz
parents:
diff changeset
12 .syntax unified
anatofuz
parents:
diff changeset
13 .globl _start
anatofuz
parents:
diff changeset
14 .p2align 2
anatofuz
parents:
diff changeset
15 .type _start,%function
anatofuz
parents:
diff changeset
16 _start:
anatofuz
parents:
diff changeset
17 .p2align 2
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 /// Generate R_ARM_TLS_LE32 relocations. These resolve statically to the offset
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
19 /// of the variable from the thread pointer
150
anatofuz
parents:
diff changeset
20 .Lt0: .word x(TPOFF)
anatofuz
parents:
diff changeset
21 .Lt1: .word y(TPOFF)
anatofuz
parents:
diff changeset
22 .Lt2: .word z(TPOFF)
anatofuz
parents:
diff changeset
23
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
24 /// __thread int x = 10
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
25 /// __thread int y;
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
26 /// __thread int z __attribute((visibility("hidden")))
150
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 .hidden z
anatofuz
parents:
diff changeset
29 .globl z
anatofuz
parents:
diff changeset
30 .globl y
anatofuz
parents:
diff changeset
31 .globl x
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 .section .tbss,"awT",%nobits
anatofuz
parents:
diff changeset
34 .p2align 2
anatofuz
parents:
diff changeset
35 .TLSSTART:
anatofuz
parents:
diff changeset
36 .type z, %object
anatofuz
parents:
diff changeset
37 z:
anatofuz
parents:
diff changeset
38 .space 4
anatofuz
parents:
diff changeset
39 .type y, %object
anatofuz
parents:
diff changeset
40 y:
anatofuz
parents:
diff changeset
41 .space 4
anatofuz
parents:
diff changeset
42 .section .tdata,"awT",%progbits
anatofuz
parents:
diff changeset
43 .p2align 2
anatofuz
parents:
diff changeset
44 .type x, %object
anatofuz
parents:
diff changeset
45 x:
anatofuz
parents:
diff changeset
46 .word 10
anatofuz
parents:
diff changeset
47
anatofuz
parents:
diff changeset
48 // SEC: Name: .tdata
anatofuz
parents:
diff changeset
49 // SEC-NEXT: Type: SHT_PROGBITS
anatofuz
parents:
diff changeset
50 // SEC-NEXT: Flags [
anatofuz
parents:
diff changeset
51 // SEC-NEXT: SHF_ALLOC
anatofuz
parents:
diff changeset
52 // SEC-NEXT: SHF_TLS
anatofuz
parents:
diff changeset
53 // SEC-NEXT: SHF_WRITE
anatofuz
parents:
diff changeset
54 // SEC-NEXT: ]
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 // SEC-NEXT: Address: 0x30120
150
anatofuz
parents:
diff changeset
56 // SEC: Size: 4
anatofuz
parents:
diff changeset
57 // SEC: Name: .tbss
anatofuz
parents:
diff changeset
58 // SEC-NEXT: Type: SHT_NOBITS
anatofuz
parents:
diff changeset
59 // SEC-NEXT: Flags [
anatofuz
parents:
diff changeset
60 // SEC-NEXT: SHF_ALLOC
anatofuz
parents:
diff changeset
61 // SEC-NEXT: SHF_TLS
anatofuz
parents:
diff changeset
62 // SEC-NEXT: SHF_WRITE
anatofuz
parents:
diff changeset
63 // SEC-NEXT: ]
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 // SEC-NEXT: Address: 0x30124
150
anatofuz
parents:
diff changeset
65 // SEC: Size: 8
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 // SEC: Dynamic Relocations {
anatofuz
parents:
diff changeset
68 // SEC-NEXT: }
anatofuz
parents:
diff changeset
69
anatofuz
parents:
diff changeset
70 // CHECK: Disassembly of section .text:
anatofuz
parents:
diff changeset
71 // CHECK-EMPTY:
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
72 // CHECK-NEXT: <_start>:
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
73 /// offset of x from Thread pointer = (TcbSize + 0x0 = 0x8)
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
74 // CHECK-NEXT: 20114: 08 00 00 00
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
75 /// offset of z from Thread pointer = (TcbSize + 0x8 = 0x10)
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
76 // CHECK-NEXT: 20118: 10 00 00 00
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
77 /// offset of y from Thread pointer = (TcbSize + 0x4 = 0xc)
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
78 // CHECK-NEXT: 2011c: 0c 00 00 00