summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-04-25 21:12:04 +0000
committerTim Northover <tnorthover@apple.com>2016-04-25 21:12:04 +0000
commit5c3140f7458a980af71d9fcea30ee688c7df2831 (patch)
tree3f427246ec2bbc470e28c7be8a54f9f9b50cd812 /llvm/test/MC
parent8407f5b3bdc129a795df6b58a03e917a69eb4094 (diff)
downloadbcm5719-llvm-5c3140f7458a980af71d9fcea30ee688c7df2831.tar.gz
bcm5719-llvm-5c3140f7458a980af71d9fcea30ee688c7df2831.zip
ARM: put extern __thread stubs in a special section.
The linker needs to know that the symbols are thread-local to do its job properly. llvm-svn: 267473
Diffstat (limited to 'llvm/test/MC')
-rw-r--r--llvm/test/MC/ARM/tls-directives.s46
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/tls-directives.s b/llvm/test/MC/ARM/tls-directives.s
new file mode 100644
index 00000000000..c0e9f6cc142
--- /dev/null
+++ b/llvm/test/MC/ARM/tls-directives.s
@@ -0,0 +1,46 @@
+@ RUN: llvm-mc -triple thumbv7-apple-ios -filetype=obj -o %t %s
+@ RUN: llvm-objdump -p %t | FileCheck %s
+
+@ CHECK: sectname __thread_data
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_REGULAR
+
+@ CHECK: sectname __thread_vars
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_VARIABLES
+
+@ CHECK: sectname __thread_bss
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_ZEROFILL
+
+@ CHECK: sectname __thread_ptr
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_VARIABLE_POINTERS
+
+
+ .section __DATA,__thread_data,thread_local_regular
+ .p2align 2
+_b$tlv$init:
+ .long 42
+
+ .section __DATA,__thread_vars,thread_local_variables
+ .globl _b
+_b:
+ .long __tlv_bootstrap
+ .long 0
+ .long _b$tlv$init
+
+.tbss _c$tlv$init, 4, 2 @ @c
+
+ .globl _c
+_c:
+ .long __tlv_bootstrap
+ .long 0
+ .long _c$tlv$init
+
+
+ .section __DATA,__thread_ptr,thread_local_variable_pointers
+ .p2align 2
+L_a$non_lazy_ptr:
+ .indirect_symbol _a
+ .long 0
OpenPOWER on IntegriCloud