135 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| // 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
 |