| // 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 {{.*}} .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 |