| // This test checks that references to the middle of CI from other function |
| // are handled properly |
| |
| // RUN: llvm-mc -filetype=obj -triple aarch64-unknown-unknown %s -o %t.o |
| // RUN: %clang %cflags --target=aarch64-unknown-linux %t.o -o %t.exe -Wl,-q |
| // RUN: llvm-bolt %t.exe -o %t.bolt -lite=false |
| // RUN: llvm-objdump -d -j .text %t.bolt | FileCheck %s |
| |
| // CHECK: deadbeef |
| // CHECK-NEXT: deadbeef |
| // CHECK-NEXT: [[#%x,ADDR:]]: deadbeef |
| // CHECK-NEXT: deadbeef |
| // CHECK: <func>: |
| // CHECK-NEXT: ldr x0, 0x[[#ADDR]] |
| // CHECK-NEXT: ret |
| |
| .type funcWithIsland, %function |
| funcWithIsland: |
| ret |
| .word 0xdeadbeef |
| .word 0xdeadbeef |
| .word 0xdeadbeef |
| .word 0xdeadbeef |
| .size funcWithIsland, .-funcWithIsland |
| |
| .type func, %function |
| func: |
| ldr x0, funcWithIsland + 12 |
| ret |
| .size func, .-func |
| |
| .global main |
| .type main, %function |
| main: |
| bl funcWithIsland |
| bl func |
| mov w8, #93 |
| svc #0 |
| .size main, .-main |