blob: be03b5a6892bffc2dbc6c41a2b2c67bc6cb4997d [file] [log] [blame]
# REQUIRES: x86-registered-target
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
# RUN: llvm-profgen --binary=%t --perfscript=%s --output=%t1 -show-disassembly-only -x86-asm-syntax=intel | FileCheck %s --match-full-lines
# CHECK: Disassembly of section .text [0x0, 0x66]:
# CHECK: <foo1>:
# CHECK: 0: push rbp
# CHECK: 1: mov rbp, rsp
# CHECK: 4: sub rsp, 16
# CHECK: 8: mov dword ptr [rbp - 4], 0
# CHECK: f: mov edi, 1
# CHECK: 14: call 0x19
# CHECK: 19: mov edi, 2
# CHECK: 1e: mov dword ptr [rbp - 8], eax
# CHECK: 21: call 0x26
# CHECK: 26: mov ecx, dword ptr [rbp - 8]
# CHECK: 29: add ecx, eax
# CHECK: 2b: mov eax, ecx
# CHECK: 2d: add rsp, 16
# CHECK: 31: pop rbp
# CHECK: 32: ret
# CHECK: <foo2>:
# CHECK: 33: push rbp
# CHECK: 34: mov rbp, rsp
# CHECK: 37: sub rsp, 16
# CHECK: 3b: mov dword ptr [rbp - 4], 0
# CHECK: 42: mov edi, 1
# CHECK: 47: call 0x4c
# CHECK: 4c: mov edi, 2
# CHECK: 51: mov dword ptr [rbp - 8], eax
# CHECK: 54: call 0x59
# CHECK: 59: mov ecx, dword ptr [rbp - 8]
# CHECK: 5c: add ecx, eax
# CHECK: 5e: mov eax, ecx
# CHECK: 60: add rsp, 16
# CHECK: 64: pop rbp
# CHECK: 65: ret
.section .text
foo1:
pushq %rbp
movq %rsp, %rbp
subq $16, %rsp
movl $0, -4(%rbp)
movl $1, %edi
callq _Z5funcAi
movl $2, %edi
movl %eax, -8(%rbp)
callq _Z5funcBi
movl -8(%rbp), %ecx
addl %eax, %ecx
movl %ecx, %eax
addq $16, %rsp
popq %rbp
retq
.section .text
foo2:
pushq %rbp
movq %rsp, %rbp
subq $16, %rsp
movl $0, -4(%rbp)
movl $1, %edi
callq _Z5funcBi
movl $2, %edi
movl %eax, -8(%rbp)
callq _Z5funcAi
movl -8(%rbp), %ecx
addl %eax, %ecx
movl %ecx, %eax
addq $16, %rsp
popq %rbp
retq
# CHECK: Disassembly of section .text.hot [0x0, 0x12]:
# CHECK: <bar>:
# CHECK: 0: push rbp
# CHECK: 1: mov rbp, rsp
# CHECK: 4: mov dword ptr [rbp - 4], edi
# CHECK: 7: mov dword ptr [rbp - 8], esi
# CHECK: a: mov eax, dword ptr [rbp - 4]
# CHECK: d: add eax, dword ptr [rbp - 8]
# CHECK: 10: pop rbp
# CHECK: 11: ret
.section .text.hot
bar:
pushq %rbp
movq %rsp, %rbp
movl %edi, -4(%rbp)
movl %esi, -8(%rbp)
movl -4(%rbp), %eax
addl -8(%rbp), %eax
popq %rbp
retq
# CHECK: Disassembly of section .text.unlikely [0x0, 0x12]:
# CHECK: <baz>:
# CHECK: 0: push rbp
# CHECK: 1: mov rbp, rsp
# CHECK: 4: mov dword ptr [rbp - 4], edi
# CHECK: 7: mov dword ptr [rbp - 8], esi
# CHECK: a: mov eax, dword ptr [rbp - 4]
# CHECK: d: sub eax, dword ptr [rbp - 8]
# CHECK: 10: pop rbp
# CHECK: 11: ret
.section .text.unlikely
baz:
pushq %rbp
movq %rsp, %rbp
movl %edi, -4(%rbp)
movl %esi, -8(%rbp)
movl -4(%rbp), %eax
subl -8(%rbp), %eax
popq %rbp
retq