xref: /llvm-project/bolt/test/AArch64/patch-entries.s (revision 485075c095a5cd7bcc225cbbb312f72d1005c430)
1# This test checks patch entries functionality
2
3# REQUIRES: system-linux
4
5# RUN: llvm-mc -filetype=obj -triple aarch64-unknown-unknown \
6# RUN:   %s -o %t.o
7# RUN: %clang %cflags -pie %t.o -o %t.exe -nostdlib -Wl,-q
8# RUN: llvm-bolt %t.exe -o %t.bolt --use-old-text=0 --lite=0 --skip-funcs=_start
9# RUN: llvm-objdump -dz %t.bolt | FileCheck %s
10
11# CHECK: <pathedEntries.org.0>:
12# CHECK-NEXT: adrp x16, 0x[[#%x,ADRP:]]
13# CHECK-NEXT: add x16, x16, #0x[[#%x,ADD:]]
14# CHECK-NEXT: br x16
15
16# CHECK: [[#ADRP + ADD]] <pathedEntries>:
17# CHECK-NEXT: [[#ADRP + ADD]]: {{.*}} ret
18
19.text
20.balign 4
21.global pathedEntries
22.type pathedEntries, %function
23pathedEntries:
24  .rept 32
25  nop
26  .endr
27  ret
28.size pathedEntries, .-pathedEntries
29
30.global _start
31.type _start, %function
32_start:
33  bl pathedEntries
34  .inst 0xdeadbeef
35  ret
36.size _start, .-_start
37