aboutsummaryrefslogtreecommitdiff
path: root/test/MC/Mips/elf-tls.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/Mips/elf-tls.s')
-rw-r--r--test/MC/Mips/elf-tls.s134
1 files changed, 134 insertions, 0 deletions
diff --git a/test/MC/Mips/elf-tls.s b/test/MC/Mips/elf-tls.s
new file mode 100644
index 000000000000..d32a699fb08f
--- /dev/null
+++ b/test/MC/Mips/elf-tls.s
@@ -0,0 +1,134 @@
+// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s
+
+// Check that the appropriate relocations were created.
+
+// CHECK: Relocations [
+// CHECK: Section (2) .rel.text {
+// CHECK: R_MIPS_TLS_LDM
+// CHECK: R_MIPS_TLS_DTPREL_HI16
+// CHECK: R_MIPS_TLS_DTPREL_LO16
+// CHECK: }
+// CHECK: ]
+
+ .text
+ .abicalls
+ .section .mdebug.abi32,"",@progbits
+ .file "/home/espindola/llvm/llvm/test/MC/Mips/elf-tls.ll"
+ .text
+ .globl f1
+ .align 2
+ .type f1,@function
+ .set nomips16
+ .ent f1
+f1: # @f1
+ .frame $sp,24,$ra
+ .mask 0x80000000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+ .set noat
+# BB#0: # %entry
+ lui $2, %hi(_gp_disp)
+ addiu $2, $2, %lo(_gp_disp)
+ addiu $sp, $sp, -24
+ sw $ra, 20($sp) # 4-byte Folded Spill
+ addu $gp, $2, $25
+ lw $25, %call16(__tls_get_addr)($gp)
+ jalr $25
+ addiu $4, $gp, %tlsgd(t1)
+ lw $2, 0($2)
+ lw $ra, 20($sp) # 4-byte Folded Reload
+ jr $ra
+ addiu $sp, $sp, 24
+ .set at
+ .set macro
+ .set reorder
+ .end f1
+$tmp0:
+ .size f1, ($tmp0)-f1
+
+ .globl f2
+ .align 2
+ .type f2,@function
+ .set nomips16
+ .ent f2
+f2: # @f2
+ .frame $sp,24,$ra
+ .mask 0x80000000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+ .set noat
+# BB#0: # %entry
+ lui $2, %hi(_gp_disp)
+ addiu $2, $2, %lo(_gp_disp)
+ addiu $sp, $sp, -24
+ sw $ra, 20($sp) # 4-byte Folded Spill
+ addu $gp, $2, $25
+ lw $25, %call16(__tls_get_addr)($gp)
+ jalr $25
+ addiu $4, $gp, %tlsgd(t2)
+ lw $2, 0($2)
+ lw $ra, 20($sp) # 4-byte Folded Reload
+ jr $ra
+ addiu $sp, $sp, 24
+ .set at
+ .set macro
+ .set reorder
+ .end f2
+$tmp1:
+ .size f2, ($tmp1)-f2
+
+ .globl f3
+ .align 2
+ .type f3,@function
+ .set nomips16
+ .ent f3
+f3: # @f3
+ .frame $sp,24,$ra
+ .mask 0x80000000,-4
+ .fmask 0x00000000,0
+ .set noreorder
+ .set nomacro
+ .set noat
+# BB#0: # %entry
+ lui $2, %hi(_gp_disp)
+ addiu $2, $2, %lo(_gp_disp)
+ addiu $sp, $sp, -24
+ sw $ra, 20($sp) # 4-byte Folded Spill
+ addu $gp, $2, $25
+ lw $25, %call16(__tls_get_addr)($gp)
+ jalr $25
+ addiu $4, $gp, %tlsldm(f3.i)
+ lui $1, %dtprel_hi(f3.i)
+ addu $1, $1, $2
+ lw $2, %dtprel_lo(f3.i)($1)
+ addiu $2, $2, 1
+ sw $2, %dtprel_lo(f3.i)($1)
+ lw $ra, 20($sp) # 4-byte Folded Reload
+ jr $ra
+ addiu $sp, $sp, 24
+ .set at
+ .set macro
+ .set reorder
+ .end f3
+$tmp2:
+ .size f3, ($tmp2)-f3
+
+ .type t1,@object # @t1
+ .section .tbss,"awT",@nobits
+ .globl t1
+ .align 2
+t1:
+ .4byte 0 # 0x0
+ .size t1, 4
+
+ .type f3.i,@object # @f3.i
+ .section .tdata,"awT",@progbits
+ .align 2
+f3.i:
+ .4byte 1 # 0x1
+ .size f3.i, 4
+
+
+ .text