|  | // 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 |