brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 199c3fc Raw
58 lines · plain
1## The file testing R_LARCH_ALIGN emitting when linker-relaxation enabled.2 3# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s -o %t.n4# RUN: llvm-objdump -dr %t.n | FileCheck %s --check-prefix=NORELAX5# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o %t.r6# RUN: llvm-objdump -dr %t.r | FileCheck %s --check-prefix=RELAX7 8# NORELAX:         pcaddu18i $ra, 09# NORELAX-NEXT:        R_LARCH_CALL36 f10# NORELAX-NEXT:    jirl $ra, $ra, 011# NORELAX-COUNT-6: nop12# NORELAX:         pcaddu18i $ra, 013# NORELAX-NEXT:        R_LARCH_CALL36 f14# NORELAX-NEXT:    jirl $ra, $ra, 015# NORELAX-COUNT-6: nop16# NORELAX:         pcaddu18i $ra, 017# NORELAX-NEXT:        R_LARCH_CALL36 f18# NORELAX-NEXT:    jirl $ra, $ra, 019 20# RELAX:         pcaddu18i $ra, 021# RELAX-NEXT:        R_LARCH_CALL36 f22# RELAX-NEXT:        R_LARCH_RELAX *ABS*23# RELAX-NEXT:    jirl $ra, $ra, 024# RELAX-NEXT:    nop25# RELAX-NEXT:        R_LARCH_ALIGN *ABS*+0x1c26# RELAX-COUNT-6: nop27# RELAX:         pcaddu18i $ra, 028# RELAX-NEXT:        R_LARCH_CALL36 f29# RELAX-NEXT:        R_LARCH_RELAX *ABS*30# RELAX-NEXT:    jirl $ra, $ra, 031# RELAX-NEXT:    nop32# RELAX-NEXT:        R_LARCH_ALIGN *ABS*+0x1c33# RELAX-COUNT-6: nop34# RELAX:         pcaddu18i $ra, 035# RELAX-NEXT:        R_LARCH_CALL36 f36# RELAX-NEXT:    jirl $ra, $ra, 037 38.text39## No R_LARCH_ALIGN before the first linker-relaxable instruction.40.p2align 541foo:42  call36 f43 44## R_LARCH_ALIGN is required after the first linker-relaxable instruction.45.p2align 546bar:47  call36 f48 49.option push50.option norelax51## R_LARCH_ALIGN is required even if norelax, because it is after a52## linker-relaxable instruction. No R_LARCH_RELAX for call36 because53## of the norelax.54.p2align 555baz:56  call36 f57.option pop58