brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 2ffaad0 Raw
95 lines · plain
1# REQUIRES: ppc2# RUN: split-file %s %t3 4# RUN: llvm-mc -filetype=obj -triple=powerpc64le %t/asm -o %t.o5# RUN: llvm-mc -filetype=obj -triple=powerpc64le %t/defs -o %t-defs.o6# RUN: ld.lld --shared %t-defs.o --soname=t-defs -o %t-defs.so7# RUN: ld.lld -T %t/lds --shared %t.o -o %t-gd.so8# RUN: ld.lld -T %t/lds %t.o %t-defs.so -o %t-gdtoie9# RUN: ld.lld -T %t/lds %t.o %t-defs.o -o %t-gdtole10 11# RUN: llvm-readelf -r %t-gd.so | FileCheck %s --check-prefix=GD-RELOC12# RUN: llvm-readelf -s %t-gd.so | FileCheck %s --check-prefix=GD-SYM13# RUN: llvm-objdump -d --no-show-raw-insn %t-gd.so | FileCheck %s --check-prefix=GD14 15# RUN: llvm-readelf -r %t-gdtoie | FileCheck %s --check-prefix=GDTOIE-RELOC16# RUN: llvm-readelf -s %t-gdtoie | FileCheck %s --check-prefix=GDTOIE-SYM17# RUN: llvm-objdump -d --no-show-raw-insn %t-gdtoie | FileCheck %s --check-prefix=GDTOIE18 19# RUN: llvm-readelf -r %t-gdtole | FileCheck %s --check-prefix=GDTOLE-RELOC20# RUN: llvm-readelf -s %t-gdtole | FileCheck %s --check-prefix=GDTOLE-SYM21# RUN: llvm-objdump -d --no-show-raw-insn %t-gdtole | FileCheck %s --check-prefix=GDTOLE22 23## This test checks the General Dynamic PC Relative TLS implementation for lld.24## GD - General Dynamic with no relaxation possible25## GDTOIE - General Dynamic relaxed to Initial Exec26## GDTOLE - General Dynamic relaxed to Local Exec27 28#--- lds29SECTIONS {30  .text_addr 0x1001000 : { *(.text_addr) }31}32 33#--- defs34.section .tbss,"awT",@nobits35.globl  x36x:37  .long 038.globl  y39y:40  .long 041 42#--- asm43 44# GD-RELOC: Relocation section '.rela.dyn' at offset 0x100b8 contains 4 entries:45# GD-RELOC: 0000000001001188  0000000100000044 R_PPC64_DTPMOD64       0000000000000000 x + 046# GD-RELOC: 0000000001001190  000000010000004e R_PPC64_DTPREL64       0000000000000000 x + 047# GD-RELOC: 0000000001001198  0000000300000044 R_PPC64_DTPMOD64       0000000000000000 y + 048# GD-RELOC: 00000000010011a0  000000030000004e R_PPC64_DTPREL64       0000000000000000 y + 049 50# GD-SYM:   Symbol table '.dynsym' contains 4 entries:51# GD-SYM:   0000000000000000     0 TLS     GLOBAL DEFAULT   UND x52# GD-SYM:   0000000000000000     0 TLS     GLOBAL DEFAULT   UND y53 54 55# GDTOIE-RELOC: Relocation section '.rela.dyn' at offset 0x{{.*}} contains 2 entries:56# GDTOIE-RELOC: 00000000010010f8  0000000100000049 R_PPC64_TPREL64        0000000000000000 x + 057# GDTOIE-RELOC: 0000000001001100  0000000300000049 R_PPC64_TPREL64        0000000000000000 y + 058 59# GDTOIE-SYM: Symbol table '.dynsym' contains 4 entries:60# GDTOIE-SYM:   0000000000000000     0 TLS     GLOBAL DEFAULT   UND x61# GDTOIE-SYM:   0000000000000000     0 TLS     GLOBAL DEFAULT   UND y62 63 64# GDTOLE-RELOC: There are no relocations in this file.65 66# GDTOLE-SYM: Symbol table '.symtab' contains 5 entries:67# GDTOLE-SYM: 0000000000000000     0 TLS     GLOBAL DEFAULT     3 x68# GDTOLE-SYM: 0000000000000004     0 TLS     GLOBAL DEFAULT     3 y69 70# GD-LABEL: <GDTwoVal>:71# GD-NEXT:    paddi 3, 0, 392, 172# GD-NEXT:    bl73# GD-NEXT:    paddi 3, 0, 396, 174# GD-NEXT:    bl75# GD-NEXT:    blr76# GDTOIE-LABEL: <GDTwoVal>:77# GDTOIE-NEXT:    pld 3, 248(0), 178# GDTOIE-NEXT:    add 3, 3, 1379# GDTOIE-NEXT:    pld 3, 244(0), 180# GDTOIE-NEXT:    add 3, 3, 1381# GDTOIE-NEXT:    blr82# GDTOLE-LABEL: <GDTwoVal>:83# GDTOLE-NEXT:    paddi 3, 13, -28672, 084# GDTOLE-NEXT:    nop85# GDTOLE-NEXT:    paddi 3, 13, -28668, 086# GDTOLE-NEXT:    nop87# GDTOLE-NEXT:    blr88.section .text_addr, "ax", %progbits89GDTwoVal:90  paddi 3, 0, x@got@tlsgd@pcrel, 191  bl __tls_get_addr@notoc(x@tlsgd)92  paddi 3, 0, y@got@tlsgd@pcrel, 193  bl __tls_get_addr@notoc(y@tlsgd)94  blr95