| # REQUIRES: riscv |
| # RUN: rm -rf %t && split-file %s %t && cd %t |
| |
| # RUN: llvm-mc -filetype=obj -triple=riscv32-unknown-elf -mattr=+relax a.s -o rv32.o |
| # RUN: llvm-mc -filetype=obj -triple=riscv64-unknown-elf -mattr=+relax a.s -o rv64.o |
| # RUN: llvm-mc -filetype=obj -triple=riscv64-unknown-elf -mattr=+relax a.s -o rv64-pie.o |
| |
| # RUN: ld.lld --relax-gp --undefined=__global_pointer$ rv32.o lds -pie -o rv32 |
| # RUN: ld.lld --relax-gp --undefined=__global_pointer$ rv64.o lds -shared -o rv64 |
| # RUN: llvm-objdump -td -M no-aliases --no-show-raw-insn rv32 | FileCheck %s |
| # RUN: llvm-objdump -td -M no-aliases --no-show-raw-insn rv64 | FileCheck %s |
| |
| # CHECK: lui a0, 512 |
| # CHECK-NEXT: addi a0, a0, 1 |
| # CHECK-NEXT: lw a0, 1(a0) |
| # CHECK-NEXT: sw a0, 1(a0) |
| |
| #--- a.s |
| .globl abs |
| abs = 0x200001 |
| |
| .global _start |
| _start: |
| lui a0, %hi(abs) |
| addi a0, a0, %lo(abs) |
| lw a0, %lo(abs)(a0) |
| sw a0, %lo(abs)(a0) |
| |
| #--- lds |
| SECTIONS { |
| .text : {*(.text) } |
| .sdata 0x200000 : {} |
| } |