brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 39f7430 Raw
54 lines · plain
1// This test checks processing of R_AARCH64_PREL64/32/16 relocations2// S + A - P = Value3// S = P - A + Value4 5// REQUIRES: system-linux6 7// RUN: %clang %cflags -nostartfiles -nostdlib %s -o %t.exe -mlittle-endian \8// RUN:     -Wl,-q -Wl,-z,max-page-size=4 -Wl,--no-relax9// RUN: llvm-readelf -Wa %t.exe | FileCheck %s -check-prefix=CHECKPREL10 11// CHECKPREL:       R_AARCH64_PREL16      {{.*}} .dummy + 012// CHECKPREL-NEXT:  R_AARCH64_PREL32      {{.*}} _start + 413// CHECKPREL-NEXT:  R_AARCH64_PREL64      {{.*}} _start + 814 15// RUN: llvm-bolt %t.exe -o %t.bolt16// RUN: llvm-objdump -D %t.bolt | FileCheck %s --check-prefix=CHECKPREL3217 18// CHECKPREL32: [[#%x,DATATABLEADDR:]] <datatable>:19// CHECKPREL32-NEXT: 00:20// CHECKPREL32-NEXT: 04: {{.*}} .word 0x[[#%x,VALUE:]]21 22// CHECKPREL32: [[#DATATABLEADDR + VALUE]] <_start>:23 24// RUN: llvm-objdump -D %t.bolt | FileCheck %s --check-prefix=CHECKPREL6425// CHECKPREL64: [[#%x,DATATABLEADDR:]] <datatable>:26// CHECKPREL64-NEXT: 00:27// CHECKPREL64-NEXT: 04:28// CHECKPREL64-NEXT: 08: {{.*}} .word 0x[[#%x,VALUE:]]29// CHECKPREL64-NEXT: 0c: {{.*}} .word 0x0000000030 31// CHECKPREL64: [[#DATATABLEADDR + VALUE]] <_start>:32 33  .section .text34  .align 435  .globl _start36  .type _start, %function37_start:38  adrp x0, datatable39  add x0, x0, :lo12:datatable40  mov x0, #041  ret42 43.section .dummy, "a", @progbits44dummy:45  .word 046 47  .data48  .align 849datatable:50  .hword dummy - datatable51  .align 252  .word _start - datatable53  .xword _start - datatable54