diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2011-12-22 01:05:17 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2011-12-22 01:05:17 +0000 |
commit | bc24985c5ff01fc25336896c388bd8e4e02ffd95 (patch) | |
tree | 886fbfab1de9388f92c664a3daf0c7ba7bdfd67c /test/MC/Mips | |
parent | 74cab51aa5cdc955b1de0c93d3785479c3ed2d18 (diff) | |
download | external_llvm-bc24985c5ff01fc25336896c388bd8e4e02ffd95.zip external_llvm-bc24985c5ff01fc25336896c388bd8e4e02ffd95.tar.gz external_llvm-bc24985c5ff01fc25336896c388bd8e4e02ffd95.tar.bz2 |
Local dynamic TLS model for direct object output. Create the correct TLS MIPS
ELF relocations.
Patch by Jack Carter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147118 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips')
-rw-r--r-- | test/MC/Mips/elf-tls.ll | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/MC/Mips/elf-tls.ll b/test/MC/Mips/elf-tls.ll new file mode 100644 index 0000000..b4183b8 --- /dev/null +++ b/test/MC/Mips/elf-tls.ll @@ -0,0 +1,36 @@ +; RUN: llc -filetype=obj -mtriple mipsel-unknown-linux %s -o - | elf-dump --dump-section-data | FileCheck %s + +; Check that the appropriate relocations were created. + +; CHECK: ('r_type', 0x2b) +; CHECK: ('r_type', 0x2c) +; CHECK: ('r_type', 0x2d) + +@t1 = thread_local global i32 0, align 4 + +define i32 @f1() nounwind { +entry: + %tmp = load i32* @t1, align 4 + ret i32 %tmp + +} + + +@t2 = external thread_local global i32 + +define i32 @f2() nounwind { +entry: + %tmp = load i32* @t2, align 4 + ret i32 %tmp + +} + +@f3.i = internal thread_local unnamed_addr global i32 1, align 4 + +define i32 @f3() nounwind { +entry: + %0 = load i32* @f3.i, align 4 + %inc = add nsw i32 %0, 1 + store i32 %inc, i32* @f3.i, align 4 + ret i32 %inc +} |