brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 74f049b Raw
48 lines · plain
1// RUN: llvm-mc -triple riscv64 -mattr=+c,+relax -filetype obj -o %t.o %s2// RUN: ld.lld --emit-relocs -o %t %t.o3// RUN: llvm-bolt --print-cfg --print-fix-riscv-calls --print-only=_start \4// RUN:     -o %t.bolt %t | FileCheck %s5// RUN: llvm-objdump -d %t.bolt | FileCheck --check-prefix=OBJDUMP %s6 7// CHECK:      Binary Function "_start" after building cfg {8// CHECK:      jal near_f9// CHECK-NEXT: auipc ra, far_f10// CHECK-NEXT: jalr 0xc(ra)11// CHECK-NEXT: j near_f12 13// CHECK:      Binary Function "_start" after fix-riscv-calls {14// CHECK:      call near_f15// CHECK-NEXT: call far_f16// CHECK-NEXT: tail near_f17 18// OBJDUMP:      0000000000600000 <_start>:19// OBJDUMP-NEXT:     jal 0x600040 <near_f>20// OBJDUMP-NEXT:     auipc ra, 0x20021// OBJDUMP-NEXT:     jalr 0x7c(ra)22// OBJDUMP-NEXT:     j 0x600040 <near_f>23// OBJDUMP:      0000000000600040 <near_f>:24// OBJDUMP:      0000000000800080 <far_f>:25 26  .text27  .globl _start28  .p2align 129_start:30  call near_f31  call far_f32  tail near_f33  .size _start, .-_start34 35  .global near_f36  .p2align 137near_f:38  ret39  .size near_f, .-near_f40 41  .skip (1 << 21)42 43  .global far_f44  .p2align 145far_f:46  ret47  .size far_f, .-far_f48