brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 2631d95 Raw
62 lines · plain
1// RUN: llvm-mc -triple=powerpc64-pc-linux -filetype=obj %s -o - | \2// RUN: llvm-readobj -r - | FileCheck %s3 4// Test correct relocation generation for thread-local storage using5// the local dynamic model.6 7	.file	"/home/espindola/llvm/llvm/test/CodeGen/PowerPC/tls-ld-obj.ll"8	.text9	.globl	main10	.align	211	.type	main,@function12	.section	.opd,"aw",@progbits13main:                                   # @main14	.align	315	.quad	.L.main16	.quad	.TOC.@tocbase17	.quad	018	.text19.L.main:20# %bb.0:                                # %entry21	addis 3, 2, a@got@tlsld@ha22	addi 3, 3, a@got@tlsld@l23	li 4, 024	bl __tls_get_addr(a@tlsld)25	nop26	stw 4, -4(1)27	addis 3, 3, a@dtprel@ha28	addi 3, 3, a@dtprel@l29	lwz 4, 0(3)30	extsw 3, 431	blr32	.long	033	.quad	034.Ltmp0:35	.size	main, .Ltmp0-.L.main36 37	.hidden	a                       # @a38	.type	a,@object39	.section	.tbss,"awT",@nobits40	.globl	a41	.align	242a:43	.long	0                       # 0x044	.size	a, 445 46 47// Verify generation of R_PPC64_GOT_TLSLD16_HA, R_PPC64_GOT_TLSLD16_LO,48// R_PPC64_TLSLD, R_PPC64_DTPREL16_HA, and R_PPC64_DTPREL16_LO for49// accessing external variable a, and R_PPC64_REL24 for the call to50// __tls_get_addr.51//52// CHECK: Relocations [53// CHECK:   Section {{.*}} .rela.text {54// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_GOT_TLSLD16_HA a55// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_GOT_TLSLD16_LO a56// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_TLSLD          a57// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_REL24          __tls_get_addr58// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_DTPREL16_HA    a59// CHECK:     0x{{[0-9,A-F]+}} R_PPC64_DTPREL16_LO    a60// CHECK:   }61// CHECK: ]62