49 lines · plain
1# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=-relax %s -o %t.n2# RUN: llvm-readobj -r %t.n | FileCheck %s3# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=+relax %s -o %t.r4# RUN: llvm-readobj -r %t.r | FileCheck %s --check-prefix=CHECKR5 6# CHECK: Relocations [7# CHECK-NEXT: Section ({{.*}}) .rela.text {8# CHECK-NEXT: 0x4 R_LARCH_CALL36 foo 0x09# CHECK-NEXT: }10# CHECK-NEXT: Section ({{.*}}) .rela.data {11# CHECK-NEXT: 0x0 R_LARCH_64 .L1 0x012# CHECK-NEXT: }13# CHECK-NEXT: ]14 15# CHECKR: Relocations [16# CHECKR-NEXT: Section ({{.*}}) .rela.text {17# CHECKR-NEXT: 0x4 R_LARCH_CALL36 foo 0x018# CHECKR-NEXT: 0x4 R_LARCH_RELAX - 0x019# CHECKR-NEXT: 0x10 R_LARCH_B21 .L0 0x020# CHECKR-NEXT: 0x18 R_LARCH_B16 .L0 0x021# CHECKR-NEXT: 0x20 R_LARCH_B26 .L0 0x022# CHECKR-NEXT: }23# CHECKR-NEXT: Section ({{.*}}) .rela.data {24# CHECKR-NEXT: 0x0 R_LARCH_64 .L1 0x025# CHECKR-NEXT: }26# CHECKR-NEXT: ]27 28.text29 nop30 31.L0:32 call36 foo33 34.L1:35 nop36## Relocations for branches to .L0 must be reserved and be fixed up by linker37## when linker relaxation enabled, because of the relaxable call36 instruction.38## Branches to .L1 can be resolved correctly at compile time, so their39## relocations can simply be removed.40 bnez $a0, .L041 beqz $a0, .L142 beq $a0, $a1, .L043 blt $a0, $a1, .L144 bl .L045 b .L146 47.data48.dword .L149