109 lines · plain
1# REQUIRES: loongarch2# RUN: rm -rf %t && split-file %s %t3 4# RUN: llvm-mc --filetype=obj --triple=loongarch32 %t/32.s -o %t/32.o5# RUN: llvm-mc --filetype=obj --triple=loongarch64 %t/64.s -o %t/64.o6 7## LA32 IE8# RUN: ld.lld -shared %t/32.o -o %t/32.so9# RUN: llvm-readobj -r -d %t/32.so | FileCheck --check-prefix=IE32-REL %s10# RUN: llvm-objdump -d --no-show-raw-insn %t/32.so | FileCheck --check-prefixes=IE32 %s11 12## LA32 IE -> LE13# RUN: ld.lld %t/32.o -o %t/3214# RUN: llvm-readelf -r %t/32 | FileCheck --check-prefix=NOREL %s15# RUN: llvm-readelf -x .got %t/32 2>&1 | FileCheck --check-prefix=LE32-GOT %s16# RUN: llvm-objdump -d --no-show-raw-insn %t/32 | FileCheck --check-prefixes=LE32 %s17 18## LA64 IE19# RUN: ld.lld -shared %t/64.o -o %t/64.so20# RUN: llvm-readobj -r -d %t/64.so | FileCheck --check-prefix=IE64-REL %s21# RUN: llvm-objdump -d --no-show-raw-insn %t/64.so | FileCheck --check-prefixes=IE64 %s22 23## LA64 IE -> LE24# RUN: ld.lld %t/64.o -o %t/6425# RUN: llvm-readelf -r %t/64 | FileCheck --check-prefix=NOREL %s26# RUN: llvm-readelf -x .got %t/64 2>&1 | FileCheck --check-prefix=LE64-GOT %s27# RUN: llvm-objdump -d --no-show-raw-insn %t/64 | FileCheck --check-prefixes=LE64 %s28 29# IE32-REL: FLAGS STATIC_TLS30# IE32-REL: .rela.dyn {31# IE32-REL-NEXT: 0x20218 R_LARCH_TLS_TPREL32 - 0xC32# IE32-REL-NEXT: 0x20214 R_LARCH_TLS_TPREL32 a 0x033# IE32-REL-NEXT: }34 35# IE64-REL: FLAGS STATIC_TLS36# IE64-REL: .rela.dyn {37# IE64-REL-NEXT: 0x20370 R_LARCH_TLS_TPREL64 - 0xC38# IE64-REL-NEXT: 0x20368 R_LARCH_TLS_TPREL64 a 0x039# IE64-REL-NEXT: }40 41## LA32:42## &.got[0] - . = 0x20214 - 0x101a4: 0x10 pages, page offset 0x21443## &.got[1] - . = 0x20218 - 0x101b0: 0x10 pages, page offset 0x21844# IE32: 101a4: pcalau12i $a4, 1645# IE32-NEXT: ld.w $a4, $a4, 53246# IE32-NEXT: add.w $a4, $a4, $tp47# IE32-NEXT: 101b0: pcalau12i $a5, 1648# IE32-NEXT: ld.w $a5, $a5, 53649# IE32-NEXT: add.w $a5, $a5, $tp50 51## LA64:52## &.got[0] - . = 0x20368 - 0x102a0: 0x10 pages, page offset 0x36853## &.got[1] - . = 0x20370 - 0x102ac: 0x10 pages, page offset 0x37054# IE64: 102a0: pcalau12i $a4, 1655# IE64-NEXT: ld.d $a4, $a4, 87256# IE64-NEXT: add.d $a4, $a4, $tp57# IE64-NEXT: 102ac: pcalau12i $a5, 1658# IE64-NEXT: ld.d $a5, $a5, 88059# IE64-NEXT: add.d $a5, $a5, $tp60 61# NOREL: no relocations62 63# a@tprel = st_value(a) = 0x864# b@tprel = st_value(a) = 0xc65# LE32-GOT: could not find section '.got'66# LE64-GOT: could not find section '.got'67 68## LA32:69# LE32: 200d4: nop70# LE32-NEXT: ori $a4, $zero, 871# LE32-NEXT: add.w $a4, $a4, $tp72# LE32-NEXT: 200e0: nop73# LE32-NEXT: ori $a5, $zero, 1274# LE32-NEXT: add.w $a5, $a5, $tp75 76## LA64:77# LE64: 20158: nop78# LE64-NEXT: ori $a4, $zero, 879# LE64-NEXT: add.d $a4, $a4, $tp80# LE64-NEXT: 20164: nop81# LE64-NEXT: ori $a5, $zero, 1282# LE64-NEXT: add.d $a5, $a5, $tp83 84#--- 32.s85la.tls.ie $a4, a86add.w $a4, $a4, $tp87la.tls.ie $a5, b88add.w $a5, $a5, $tp89 90.section .tbss,"awT",@nobits91.globl a92.zero 893a:94.zero 495b:96 97#--- 64.s98la.tls.ie $a4, a99add.d $a4, $a4, $tp100la.tls.ie $a5, b101add.d $a5, $a5, $tp102 103.section .tbss,"awT",@nobits104.globl a105.zero 8106a:107.zero 4108b:109