89 lines
2.5 KiB
ArmAsm
89 lines
2.5 KiB
ArmAsm
|
# REQUIRES: riscv
|
||
|
|
||
|
# RUN: rm -rf %t && mkdir %t && cd %t
|
||
|
|
||
|
# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c,+relax %s -o 32.o
|
||
|
# RUN: ld.lld -Ttext=0x10000 32.o -o 32
|
||
|
# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 32 | FileCheck %s
|
||
|
## R_RISCV_ALIGN is handled regarldess of --no-relax.
|
||
|
# RUN: ld.lld -Ttext=0x10000 --no-relax 32.o -o 32.norelax
|
||
|
# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 32.norelax | FileCheck %s
|
||
|
|
||
|
# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c,+relax %s -o 64.o
|
||
|
# RUN: ld.lld -Ttext=0x10000 64.o -o 64
|
||
|
# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 64 | FileCheck %s
|
||
|
# RUN: ld.lld -Ttext=0x10000 --no-relax 64.o -o 64.norelax
|
||
|
# RUN: llvm-objdump -td --no-show-raw-insn -M no-aliases 64.norelax | FileCheck %s
|
||
|
|
||
|
# CHECK-DAG: 00010002 l .text {{0*}}1e a
|
||
|
# CHECK-DAG: 00010010 l .text {{0*}}22 b
|
||
|
# CHECK-DAG: 00010012 l .text {{0*}}1e c
|
||
|
# CHECK-DAG: 00010020 l .text {{0*}}16 d
|
||
|
# CHECK-DAG: 00010000 g .text {{0*}}36 _start
|
||
|
|
||
|
# CHECK: <_start>:
|
||
|
# CHECK-NEXT: c.addi a0, 0x1
|
||
|
# CHECK-EMPTY:
|
||
|
# CHECK-NEXT: <a>:
|
||
|
# CHECK-NEXT: c.nop
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-EMPTY:
|
||
|
# CHECK-NEXT: <b>:
|
||
|
# CHECK-NEXT: 10010: c.addi a0, 0x2
|
||
|
# CHECK-EMPTY:
|
||
|
# CHECK-NEXT: <c>:
|
||
|
# CHECK-NEXT: c.addi a0, 0x3
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-EMPTY:
|
||
|
# CHECK-NEXT: <d>:
|
||
|
# CHECK-NEXT: 10020: c.addi a0, 0x4
|
||
|
# CHECK-NEXT: c.addi a0, 0x5
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: addi zero, zero, 0x0
|
||
|
# CHECK-NEXT: 10030: c.addi a0, 0x6
|
||
|
# CHECK-NEXT: c.addi a0, 0x7
|
||
|
# CHECK-NEXT: c.addi a0, 0x8
|
||
|
# CHECK-EMPTY:
|
||
|
|
||
|
# CHECK: <.text2>:
|
||
|
# CHECK-NEXT: addi a0, a1, 0x1
|
||
|
# CHECK-NEXT: c.addi a0, 0x1
|
||
|
# CHECK-NEXT: c.nop
|
||
|
# CHECK-NEXT: c.addi a0, 0x2
|
||
|
|
||
|
.global _start
|
||
|
_start:
|
||
|
c.addi a0, 0x1
|
||
|
a:
|
||
|
.balign 16
|
||
|
b:
|
||
|
c.addi a0, 0x2
|
||
|
c:
|
||
|
c.addi a0, 0x3
|
||
|
.balign 32
|
||
|
.size a, . - a
|
||
|
d:
|
||
|
c.addi a0, 0x4
|
||
|
c.addi a0, 0x5
|
||
|
.balign 16
|
||
|
.size c, . - c
|
||
|
c.addi a0, 0x6
|
||
|
.size b, . - b
|
||
|
c.addi a0, 0x7
|
||
|
.balign 4
|
||
|
c.addi a0, 0x8
|
||
|
.size d, . - d
|
||
|
.size _start, . - _start
|
||
|
|
||
|
.section .text2,"ax"
|
||
|
.balign 16
|
||
|
addi a0, a1, 0x1
|
||
|
c.addi a0, 0x1
|
||
|
.balign 8
|
||
|
c.addi a0, 0x2
|