brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · d3648ed Raw
47 lines · plain
1// This test checks that the veneer are properly handled by BOLT.2// Strip .rela.mytext section to simulate inserted by a linker veneers3// that does not contain relocations.4 5# RUN: llvm-mc -filetype=obj -triple aarch64-unknown-unknown \6# RUN:   %s -o %t.o7# RUN: %clang %cflags -fPIC -pie %t.o -o %t.exe -nostdlib \8# RUN:    -fuse-ld=lld -Wl,--no-relax -Wl,-q9# RUN: llvm-objdump -d --disassemble-symbols='myveneer' %t.exe | \10# RUN:   FileCheck --check-prefix=CHECKVENEER %s11# RUN: llvm-objcopy --remove-section .rela.mytext %t.exe12# RUN: llvm-bolt %t.exe -o %t.bolt --elim-link-veneers=true --lite=013# RUN: llvm-objdump -d -j .text --disassemble-symbols='myveneer' %t.bolt | \14# RUN:   FileCheck --check-prefix=CHECKOUTVENEER %s15# RUN: llvm-objdump -d --disassemble-symbols='_start' %t.bolt | FileCheck %s16 17.text18.balign 419.global foo20.type foo, %function21foo:22  adrp x1, foo23  ret24.size foo, .-foo25 26.section ".mytext", "ax"27.balign 428# CHECKOUTVENEER-NOT: {{.*}} <myveneer>:29.global myveneer30.type myveneer, %function31myveneer:32# CHECKVENEER: adrp33# CHECKVENEER-NEXT: add34  adrp x16, foo35  add x16, x16, #:lo12:foo36  br x1637  nop38.size myveneer, .-myveneer39 40.global _start41.type _start, %function42_start:43# CHECK: {{.*}} bl {{.*}} <foo>44  bl myveneer45  ret46.size _start, .-_start47