brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 70186f5 Raw
83 lines · plain
1# REQUIRES: loongarch2# RUN: rm -rf %t && split-file %s %t3 4# RUN: llvm-mc --filetype=obj --triple=loongarch32 --position-independent %t/a.s -o %t/a.32.o5# RUN: llvm-mc --filetype=obj --triple=loongarch32 %t/tga.s -o %t/tga.32.o6# RUN: llvm-mc --filetype=obj --triple=loongarch64 --position-independent %t/a.s -o %t/a.64.o7# RUN: llvm-mc --filetype=obj --triple=loongarch64 %t/tga.s -o %t/tga.64.o8 9## LA32 LD10# RUN: ld.lld -shared %t/a.32.o -o %t/ld.32.so11# RUN: llvm-readobj -r %t/ld.32.so | FileCheck --check-prefix=LD32-REL %s12# RUN: llvm-readelf -x .got %t/ld.32.so | FileCheck --check-prefix=LD32-GOT %s13# RUN: llvm-objdump -d --no-show-raw-insn %t/ld.32.so | FileCheck --check-prefixes=LD32 %s14 15## LA32 LD -> LE16# RUN: ld.lld %t/a.32.o %t/tga.32.o -o %t/le.3217# RUN: llvm-readelf -r %t/le.32 | FileCheck --check-prefix=NOREL %s18# RUN: llvm-readelf -x .got %t/le.32 | FileCheck --check-prefix=LE32-GOT %s19# RUN: llvm-objdump -d --no-show-raw-insn %t/le.32 | FileCheck --check-prefixes=LE32 %s20 21## LA64 LD22# RUN: ld.lld -shared %t/a.64.o -o %t/ld.64.so23# RUN: llvm-readobj -r %t/ld.64.so | FileCheck --check-prefix=LD64-REL %s24# RUN: llvm-readelf -x .got %t/ld.64.so | FileCheck --check-prefix=LD64-GOT %s25# RUN: llvm-objdump -d --no-show-raw-insn %t/ld.64.so | FileCheck --check-prefixes=LD64 %s26 27## LA64 LD -> LE28# RUN: ld.lld %t/a.64.o %t/tga.64.o -o %t/le.6429# RUN: llvm-readelf -r %t/le.64 | FileCheck --check-prefix=NOREL %s30# RUN: llvm-readelf -x .got %t/le.64 | FileCheck --check-prefix=LE64-GOT %s31# RUN: llvm-objdump -d --no-show-raw-insn %t/le.64 | FileCheck --check-prefixes=LE64 %s32 33## a@dtprel = st_value(a) = 0 is a link-time constant.34# LD32-REL:      .rela.dyn {35# LD32-REL-NEXT:   0x20280 R_LARCH_TLS_DTPMOD32 - 0x036# LD32-REL-NEXT: }37# LD32-GOT:      section '.got':38# LD32-GOT-NEXT: 0x00020280 00000000 0000000039 40# LD64-REL:      .rela.dyn {41# LD64-REL-NEXT:   0x20400 R_LARCH_TLS_DTPMOD64 - 0x042# LD64-REL-NEXT: }43# LD64-GOT:      section '.got':44# LD64-GOT-NEXT: 0x00020400 00000000 00000000 00000000 0000000045 46## LA32: &DTPMOD(a) - . = 0x20280 - 0x101cc = 16429<<247# LD32:      101cc: pcaddi $a0, 1642948# LD32-NEXT:        bl 4849 50## LA64: &DTPMOD(a) - . = 0x20400 - 0x102e0 = 16456<<251# LD64:      102e0: pcaddi $a0, 1645652# LD64-NEXT:        bl 4453 54# NOREL: no relocations55 56## a is local - its DTPMOD/DTPREL slots are link-time constants.57## a@dtpmod = 1 (main module)58# LE32-GOT: section '.got':59# LE32-GOT-NEXT: 0x0003011c 01000000 0000000060 61# LE64-GOT: section '.got':62# LE64-GOT-NEXT: 0x000301d0 01000000 00000000 00000000 0000000063 64## LA32: DTPMOD(.LANCHOR0) - . = 0x3011c - 0x20114 = 16386<<265# LE32:      20114: pcaddi $a0, 1638666# LE32-NEXT:        bl 467 68## LA64: DTPMOD(.LANCHOR0) - . = 0x301d0 - 0x201c8 = 16386<<269# LE64:      201c8: pcaddi $a0, 1638670# LE64-NEXT:        bl 471 72#--- a.s73pcaddi $a0, %ld_pcrel_20(.LANCHOR0)74bl %plt(__tls_get_addr)75 76.section .tbss,"awT",@nobits77.set .LANCHOR0, . + 078.zero 879 80#--- tga.s81.globl __tls_get_addr82__tls_get_addr:83