brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 08d5d3e Raw
96 lines · plain
1# REQUIRES: loongarch2# RUN: rm -rf %t && split-file %s %t && cd %t3 4# RUN: llvm-mc --filetype=obj --triple=loongarch32 -mattr=+relax a.s -o a.32.o5# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=+relax a.s -o a.64.o6 7# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 a.32.o -o a.328# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 a.64.o -o a.649# RUN: llvm-objdump -td --no-show-raw-insn a.32 | FileCheck --check-prefixes=RELAX %s10# RUN: llvm-objdump -td --no-show-raw-insn a.64 | FileCheck --check-prefixes=RELAX %s11 12# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 a.32.o -shared -o a.32s13# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 a.64.o -shared -o a.64s14# RUN: llvm-objdump -td --no-show-raw-insn a.32s | FileCheck --check-prefixes=RELAX %s15# RUN: llvm-objdump -td --no-show-raw-insn a.64s | FileCheck --check-prefixes=RELAX %s16 17# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x410000 a.32.o -o a.32o18# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x410000 a.64.o -o a.64o19# RUN: llvm-objdump -td --no-show-raw-insn a.32o | FileCheck --check-prefixes=NORELAX32 %s20# RUN: llvm-objdump -td --no-show-raw-insn a.64o | FileCheck --check-prefixes=NORELAX64 %s21 22# RELAX-LABEL: <_start>:23## offset = 0x14000 - 0x10000 = 4096<<224# RELAX-NEXT:      10000:  pcaddi $a0, 409625# RELAX-NEXT:              pcaddi $a0, 409526# RELAX-NEXT:              pcaddi $a0, 409427# RELAX-NEXT:              pcaddi $a0, 409328 29# NORELAX32-LABEL: <_start>:30## offset exceed range of pcaddi31## offset = 0x410000 - 0x10000: 0x400 pages, page offset 032# NORELAX32-NEXT:  10000:  pcalau12i     $a0, 102433# NORELAX32-NEXT:          addi.w        $a0, $a0, 034## Not relaxation, convertion to PCRel.35# NORELAX32-NEXT:          pcalau12i     $a0, 102436# NORELAX32-NEXT:          addi.w        $a0, $a0, 037# NORELAX32-NEXT:          pcalau12i     $a0, 102438# NORELAX32-NEXT:          addi.w        $a0, $a0, 039# NORELAX32-NEXT:          pcalau12i     $a0, 102440# NORELAX32-NEXT:          addi.w        $a0, $a0, 041 42# NORELAX64-LABEL: <_start>:43## offset exceed range of pcaddi44## offset = 0x410000 - 0x10000: 0x400 pages, page offset 045# NORELAX64-NEXT:  10000:  pcalau12i     $a0, 102446# NORELAX64-NEXT:          addi.d        $a0, $a0, 047## Not relaxation, convertion to PCRel.48# NORELAX64-NEXT:          pcalau12i     $a0, 102449# NORELAX64-NEXT:          addi.d        $a0, $a0, 050# NORELAX64-NEXT:          pcalau12i     $a0, 102451# NORELAX64-NEXT:          addi.d        $a0, $a0, 052# NORELAX64-NEXT:          pcalau12i     $a0, 102453# NORELAX64-NEXT:          addi.d        $a0, $a0, 054 55 56## GOT references with non-zero addends. No relaxation.57# RUN: llvm-mc --filetype=obj --triple=loongarch32 -mattr=+relax nonzero.s -o nonzero.32.o58# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=+relax nonzero.s -o nonzero.64.o59# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 nonzero.32.o -o nonzero.3260# RUN: ld.lld --section-start=.text=0x10000 --section-start=.data=0x14000 nonzero.64.o -o nonzero.6461# RUN: llvm-objdump -td --no-show-raw-insn nonzero.32 | FileCheck --check-prefixes=NONZERO32 %s62# RUN: llvm-objdump -td --no-show-raw-insn nonzero.64 | FileCheck --check-prefixes=NONZERO64 %s63 64# NONZERO32-LABEL: <_start>:65# NONZERO32-NEXT:      10000:  pcalau12i $a0, 466# NONZERO32-NEXT:              ld.w      $a0, $a0, 867 68# NONZERO64-LABEL: <_start>:69# NONZERO64-NEXT:      10000:  pcalau12i $a0, 470# NONZERO64-NEXT:              ld.d      $a0, $a0, 1271 72 73#--- a.s74.section .text75.global _start76_start:77  la.local  $a0, sym78  la.global $a0, sym79  la.pcrel  $a0, sym80  la.got    $a0, sym81 82.section .data83sym:84  .zero 485 86 87#--- nonzero.s88.section .text89.global _start90_start:91  la.got    $a0, sym+492 93.section .data94sym:95  .zero 496