# REQUIRES: system-linux # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \ # RUN: %s -o %t.o # RUN: %clang %cflags -no-pie %t.o -o %t.exe -Wl,-q # RUN: llvm-bolt %t.exe --funcs init_impls --lite \ # RUN: -o %t.bolted # RUN: %t.bolted | FileCheck %s .section .rodata.str1.1,"aMS",@progbits,1 .LC2: .string "Hello, world\n" .text .p2align 4 .globl init_impls .type init_impls, @function init_impls: .cfi_startproc push %rbp mov %rsp,%rbp push %r15 push %rbx sub $0x8,%rsp 1: lea 1b(%rip),%rbx # R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_+0x9 movabsq $_GLOBAL_OFFSET_TABLE_-1b, %r11 add %r11,%rbx # R_X86_64_GOTOFF64 .LC2 movabs $.LC2@gotoff,%rax lea (%rbx,%rax,1),%rax mov %rax,%rdi mov %rbx,%r15 # R_X86_64_PLTOFF64 puts movabs $puts@pltoff,%rax add %rbx,%rax call *%rax add $0x8,%rsp pop %rbx pop %r15 pop %rbp retq .cfi_endproc .size init_impls, .-init_impls .globl main .type main, @function .p2align 4 main: callq init_impls xorq %rax, %rax ret # CHECK: Hello, world