You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| // RUN: llvm-mc -triple=powerpc64-pc-linux -filetype=obj %s -o - | \
 | |
| // RUN: llvm-readobj -r | FileCheck %s
 | |
| 
 | |
| // Test correct relocation generation for thread-local storage using
 | |
| // the local dynamic model.
 | |
| 
 | |
| 	.file	"/home/espindola/llvm/llvm/test/CodeGen/PowerPC/tls-ld-obj.ll"
 | |
| 	.text
 | |
| 	.globl	main
 | |
| 	.align	2
 | |
| 	.type	main,@function
 | |
| 	.section	.opd,"aw",@progbits
 | |
| main:                                   # @main
 | |
| 	.align	3
 | |
| 	.quad	.L.main
 | |
| 	.quad	.TOC.@tocbase
 | |
| 	.quad	0
 | |
| 	.text
 | |
| .L.main:
 | |
| # %bb.0:                                # %entry
 | |
| 	addis 3, 2, a@got@tlsld@ha
 | |
| 	addi 3, 3, a@got@tlsld@l
 | |
| 	li 4, 0
 | |
| 	bl __tls_get_addr(a@tlsld)
 | |
| 	nop
 | |
| 	stw 4, -4(1)
 | |
| 	addis 3, 3, a@dtprel@ha
 | |
| 	addi 3, 3, a@dtprel@l
 | |
| 	lwz 4, 0(3)
 | |
| 	extsw 3, 4
 | |
| 	blr
 | |
| 	.long	0
 | |
| 	.quad	0
 | |
| .Ltmp0:
 | |
| 	.size	main, .Ltmp0-.L.main
 | |
| 
 | |
| 	.hidden	a                       # @a
 | |
| 	.type	a,@object
 | |
| 	.section	.tbss,"awT",@nobits
 | |
| 	.globl	a
 | |
| 	.align	2
 | |
| a:
 | |
| 	.long	0                       # 0x0
 | |
| 	.size	a, 4
 | |
| 
 | |
| 
 | |
| // Verify generation of R_PPC64_GOT_TLSLD16_HA, R_PPC64_GOT_TLSLD16_LO,
 | |
| // R_PPC64_TLSLD, R_PPC64_DTPREL16_HA, and R_PPC64_DTPREL16_LO for
 | |
| // accessing external variable a, and R_PPC64_REL24 for the call to
 | |
| // __tls_get_addr.
 | |
| //
 | |
| // CHECK: Relocations [
 | |
| // CHECK:   Section {{.*}} .rela.text {
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_GOT_TLSLD16_HA a
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_GOT_TLSLD16_LO a
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_TLSLD          a
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_REL24          __tls_get_addr
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_DTPREL16_HA    a
 | |
| // CHECK:     0x{{[0-9,A-F]+}} R_PPC64_DTPREL16_LO    a
 | |
| // CHECK:   }
 | |
| // CHECK: ]
 |