brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · b3db2c9 Raw
164 lines · plain
1# REQUIRES: riscv2## Test that we can handle R_RISCV_ALIGN.3 4# RUN: rm -rf %t && mkdir %t && cd %t5 6# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+relax %s -o 32.o7# RUN: ld.lld -Ttext=0x10000 32.o -o 328# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 32 | FileCheck %s9## R_RISCV_ALIGN is handled regarldess of --no-relax.10# RUN: ld.lld -Ttext=0x10000 --no-relax 32.o -o 32.norelax11# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 32.norelax | FileCheck %s12 13# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax %s -riscv-align-rvc=0 -o 64.o14# RUN: ld.lld -Ttext=0x10000 64.o -o 6415# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 64 | FileCheck %s16# RUN: ld.lld -Ttext=0x10000 --no-relax 64.o -o 64.norelax17# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 64.norelax | FileCheck %s18 19# RUN: ld.lld -Ttext=0x10000 --gc-sections 64.o -o 64.gc20# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 64.gc | FileCheck %s --check-prefix=GC21 22## -r keeps section contents unchanged.23# RUN: ld.lld -r 64.o -o 64.r24# RUN: llvm-objdump -dr --no-show-raw-insn -M no-aliases 64.r | FileCheck %s --check-prefix=CHECKR25 26# CHECK-DAG: 00010004 l       .text  {{0*}}1c a27# CHECK-DAG: 00010008 l       .text  {{0*}}28 b28# CHECK-DAG: 00010014 l       .text  {{0*}}20 c29# CHECK-DAG: 00010000 g       .text  {{0*}}38 _start30 31# CHECK:       <_start>:32# CHECK-NEXT:            lui     a0, 0x1033# CHECK-EMPTY:34# CHECK-NEXT:  <a>:35# CHECK-NEXT:            addi    a0, a0, 0x236# CHECK-EMPTY:37# CHECK-NEXT:  <b>:38# CHECK-NEXT:            addi    zero, zero, 0x039# CHECK-NEXT:            addi    zero, zero, 0x040# CHECK-NEXT:    10010:  addi    a0, a0, 0x341# CHECK-EMPTY:42# CHECK-NEXT:  <c>:43# CHECK-NEXT:            addi    a0, a0, 0x444# CHECK-NEXT:            addi    a0, a0, 0x545# CHECK-NEXT:            addi    zero, zero, 0x046# CHECK-NEXT:    10020:  addi    a0, a0, 0x647# CHECK-NEXT:            addi    a0, a0, 0x748# CHECK-NEXT:            addi    zero, zero, 0x049# CHECK-NEXT:            addi    zero, zero, 0x050# CHECK-NEXT:    10030:  addi    a0, a0, 0x851# CHECK-NEXT:            addi    a0, a0, 0x952# CHECK-EMPTY:53# CHECK:       <e>:54# CHECK-NEXT:            addi    a0, a0, 0x155# CHECK-EMPTY:56# CHECK-NEXT:  <f>:57# CHECK-NEXT:    10044:  addi    a0, a0, 0x258# CHECK-NEXT:            addi    zero, zero, 0x059# CHECK-NEXT:            addi    zero, zero, 0x060# CHECK-NEXT:            addi    zero, zero, 0x061# CHECK-NEXT:            addi    zero, zero, 0x062# CHECK-NEXT:            addi    zero, zero, 0x063# CHECK-NEXT:            addi    zero, zero, 0x064# CHECK-NEXT:    10060:  addi    a0, a0, 0x365# CHECK-EMPTY:66 67## _start-0x10070 = 0x10000-0x10070 = -11268# CHECK:      <.L1>:69# CHECK-NEXT:   10070:  auipc   a0, 0x070# CHECK-NEXT:           addi    a0, a0, -0x7071# CHECK-NEXT:           addi    zero, zero, 0x072# CHECK-NEXT:           addi    zero, zero, 0x073# CHECK-NEXT:           auipc   a0, 0x074# CHECK-NEXT:           addi    a0, a0, -0x7075# CHECK-EMPTY:76 77# GC-DAG:       00010004 l       .text  {{0*}}1c a78# GC-DAG:       00010008 l       .text  {{0*}}28 b79# GC-DAG:       00010014 l       .text  {{0*}}20 c80# GC-DAG:       00010000 g       .text  {{0*}}38 _start81# GC:           <_start>:82# GC-NOT:       <d>:83 84# CHECKR:       <_start>:85# CHECKR-NEXT:          lui     a0, 0x086# CHECKR-NEXT:          0000000000000000:  R_RISCV_HI20         _start87# CHECKR-NEXT:          0000000000000000:  R_RISCV_RELAX        *ABS*88# CHECKR-EMPTY:89# CHECKR-NEXT:  <a>:90# CHECKR-NEXT:          addi    a0, a0, 0x291# CHECKR-EMPTY:92# CHECKR-NEXT:  <b>:93# CHECKR-NEXT:          addi    zero, zero, 0x094# CHECKR-NEXT:          0000000000000008:  R_RISCV_ALIGN        *ABS*+0xc95# CHECKR-NEXT:          addi    zero, zero, 0x096# CHECKR-NEXT:          addi    zero, zero, 0x097# CHECKR-NEXT:          addi    a0, a0, 0x398# CHECKR-EMPTY:99# CHECKR-NEXT:  <c>:100# CHECKR-NEXT:          addi    a0, a0, 0x4101# CHECKR-NEXT:          addi    a0, a0, 0x5102# CHECKR-NEXT:          addi    zero, zero, 0x0103# CHECKR-NEXT:          0000000000000020:  R_RISCV_ALIGN        *ABS*+0x1c104# CHECKR-NEXT:          addi    zero, zero, 0x0105# CHECKR-NEXT:          addi    zero, zero, 0x0106# CHECKR-NEXT:          addi    zero, zero, 0x0107# CHECKR-NEXT:          addi    zero, zero, 0x0108# CHECKR-NEXT:          addi    zero, zero, 0x0109# CHECKR-NEXT:          addi    zero, zero, 0x0110# CHECKR-NEXT:          addi    a0, a0, 0x6111# CHECKR-NEXT:          addi    a0, a0, 0x7112# CHECKR-NEXT:          addi    zero, zero, 0x0113# CHECKR-NEXT:          0000000000000044:  R_RISCV_ALIGN        *ABS*+0xc114# CHECKR-NEXT:          addi    zero, zero, 0x0115# CHECKR-NEXT:          addi    zero, zero, 0x0116# CHECKR-NEXT:          addi    a0, a0, 0x8117# CHECKR-NEXT:          addi    a0, a0, 0x9118 119.global _start120_start:121  lui a0, %hi(_start)122a:123  addi a0, a0, 0x2124b:125.balign 16126  addi a0, a0, 0x3127c:128  addi a0, a0, 0x4129  addi a0, a0, 0x5130.balign 32131.size a, . - a132  addi a0, a0, 0x6133  addi a0, a0, 0x7134.balign 16135.size b, . - b136  addi a0, a0, 0x8137.size c, . - c138  addi a0, a0, 0x9139.size _start, . - _start140 141## Test another text section.142.section .text2,"ax",@progbits143d:144e:145.balign 8146  addi a0, a0, 0x1147f:148  addi a0, a0, 0x2149.balign 32150.size d, . - d151  addi a0, a0, 0x3152.size e, . - e153.size f, . - f154 155## Test that matching HI20 can be found despite deleted bytes.156.section .pcrel,"ax",@progbits157.L1:158  auipc a0, %pcrel_hi(_start)159  addi a0, a0, %pcrel_lo(.L1)160.balign 16161.L2:162  auipc a0, %pcrel_hi(_start)163  addi a0, a0, %pcrel_lo(.L1)164