brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 747a58e Raw
148 lines · plain
1# REQUIRES: loongarch2 3## Test LA64.4# RUN: rm -rf %t && split-file %s %t && cd %t5# RUN: llvm-mc -filetype=obj -triple=loongarch64 -mattr=+relax a.s -o a.o6# RUN: llvm-mc -filetype=obj -triple=loongarch64 -mattr=+relax --defsym ELF64=1 b.s -o b.o7# RUN: llvm-mc -filetype=obj -triple=loongarch64 -mattr=+relax b1.s -o b1.o8# RUN: llvm-mc -filetype=obj -triple=loongarch64 -mattr=+relax c.s -o c.o9# RUN: llvm-mc -filetype=obj -triple=loongarch64 d.s -o d.o10 11## No RELAX. Don't synthesize ALIGN.12# RUN: ld.lld -r b.o d.o -o bd.ro13# RUN: llvm-readelf -r bd.ro | FileCheck %s --check-prefix=NOREL14 15# NOREL: no relocations16 17# RUN: ld.lld -r b.o b.o a.o b.o b1.o c.o d.o -o out.ro18# RUN: llvm-objdump -dr --no-show-raw-insn out.ro | FileCheck %s19# RUN: llvm-readelf -r out.ro | FileCheck %s --check-prefix=CHECK-REL20 21# CHECK:      <b0>:22# CHECK-NEXT:   0:    addi.d $a0, $a1, 123# CHECK-NEXT:   4:    nop24# CHECK-EMPTY:25# CHECK-NEXT: <b0>:26# CHECK-NEXT:   8:    addi.d $a0, $a1, 127# CHECK-EMPTY:28# CHECK-NEXT: <_start>:29# CHECK-NEXT:   c:    pcalau12i $a0, 030# CHECK-NEXT:           000000000000000c:  R_LARCH_PCALA_HI20   .Ltext1_start31# CHECK-NEXT:           000000000000000c:  R_LARCH_RELAX        *ABS*32# CHECK-NEXT:   10:   addi.d $a0, $a0, 033# CHECK-NEXT:           0000000000000010:  R_LARCH_PCALA_LO12   .Ltext1_start34# CHECK-NEXT:           0000000000000010:  R_LARCH_RELAX        *ABS*35# CHECK-NEXT:   14:   nop36# CHECK-NEXT:           0000000000000014:  R_LARCH_ALIGN        *ABS*+0x437# CHECK-EMPTY:38# CHECK-NEXT: <b0>:39# CHECK-NEXT:   18:   addi.d $a0, $a1, 140# CHECK-NEXT:   1c:   nop41# CHECK-NEXT:   20:   nop42# CHECK-NEXT:           0000000000000020:  R_LARCH_ALIGN        *ABS*+0x443# CHECK-NEXT:   24:   nop44# CHECK-EMPTY:45# CHECK-NEXT: <b1>:46# CHECK-NEXT:   28:   addi.d $a0, $a1, 347# CHECK-EMPTY:48# CHECK-NEXT: <c0>:49# CHECK-NEXT:   2c:   addi.d $a0, $a1, 450# CHECK-NEXT:   30:   nop51# CHECK-NEXT:           0000000000000030:  R_LARCH_ALIGN        *ABS*+0x452# CHECK-EMPTY:53# CHECK-NEXT: <d0>:54# CHECK-NEXT:   34:   addi.d $a0, $a1, 555 56# CHECK-REL:  Relocation section '.rela.text' at offset {{.*}} contains 7 entries:57# CHECK-REL:  Relocation section '.rela.text1' at offset {{.*}} contains 5 entries:58 59## Test LA32.60# RUN: llvm-mc -filetype=obj -triple=loongarch32 -mattr=+relax a.s -o a.32.o61# RUN: llvm-mc -filetype=obj -triple=loongarch32 -mattr=+relax b.s -o b.32.o62# RUN: ld.lld -r a.32.o b.32.o -o out.32.ro63# RUN: ld.lld -Ttext=0x10000 out.32.ro -o out3264# RUN: llvm-objdump -dr --no-show-raw-insn out32 | FileCheck %s --check-prefix=CHECK3265 66# CHECK32:      <_start>:67# CHECK32-NEXT:   10000:    pcaddi $a0, 468# CHECK32-NEXT:   10004:    nop69# CHECK32-EMPTY:70# CHECK32-NEXT: <b0>:71# CHECK32-NEXT:   10008:    addi.w $a0, $a1, 172# CHECK32:      <.Ltext1_start>:73# CHECK32-NEXT:   10010:    pcaddi $a1, 074# CHECK32-NEXT:   10014:    nop75# CHECK32-NEXT:   10018:    addi.w $a0, $a1, 276 77## Test CREL.78# RUN: llvm-mc -filetype=obj -triple=loongarch64 -mattr=+relax --crel a.s -o acrel.o79# RUN: ld.lld -r acrel.o b.o -o out.crel.ro80# RUN: llvm-objdump -dr --no-show-raw-insn out.crel.ro | FileCheck %s --check-prefix=CHECKC81 82# CHECKC:      <_start>:83# CHECKC-NEXT:   0:    pcalau12i $a0, 084# CHECKC-NEXT:           0000000000000000:  R_LARCH_PCALA_HI20   .Ltext1_start85# CHECKC-NEXT:           0000000000000000:  R_LARCH_RELAX        *ABS*86# CHECKC-NEXT:   4:    addi.d $a0, $a0, 087# CHECKC-NEXT:           0000000000000004:  R_LARCH_PCALA_LO12   .Ltext1_start88# CHECKC-NEXT:           0000000000000004:  R_LARCH_RELAX        *ABS*89# CHECKC-NEXT:   8:    nop90# CHECKC-NEXT:           0000000000000008:  R_LARCH_ALIGN        *ABS*+0x491# CHECKC-EMPTY:92# CHECKC-NEXT: <b0>:93# CHECKC-NEXT:   c:    addi.d $a0, $a1, 194 95#--- a.s96.globl _start97_start:98  la.pcrel $a0, .Ltext1_start99 100.section .text1,"ax"101.Ltext1_start:102  la.pcrel $a1, .Ltext1_start103 104#--- b.s105.macro addi dst, src1, src2106.ifdef ELF64107  addi.d \dst, \src1, \src2108.else109  addi.w \dst, \src1, \src2110.endif111.endm112 113## Needs synthesized ALIGN.114.option push115.option norelax116.balign 8117b0:118  addi $a0, $a1, 1119 120.section .text1,"ax"121.balign 8122  addi $a0, $a1, 2123 124.option pop125 126#--- b1.s127# Starts with an ALIGN relocation, don't need synthesized ALIGN.128.option push129.option norelax130  .reloc ., R_LARCH_ALIGN, 4131  nop132.balign 8133b1:134  addi.d $a0, $a1, 3135.option pop136 137#--- c.s138## Alignment == 4, don't need synthesized ALIGN.139.balign 4140c0:141  addi.d $a0, $a1, 4142 143#--- d.s144## Needs synthesized ALIGN.145.balign 8146d0:147  addi.d $a0, $a1, 5148