1# RUN: yaml2obj -o %t.exe %p/Inputs/external_symbol.yaml 2# RUN: llvm-bolt -o %t.original %t.exe 3# RUN: llvm-objdump --macho --disassemble-all --no-print-imm-hex %t.original | FileCheck --check-prefix=ORIGINAL %s 4 5# ORIGINAL: _main: 6# ORIGINAL-NEXT: 100000f50: 55 pushq %rbp 7# ORIGINAL-NEXT: 100000f51: 48 89 e5 movq %rsp, %rbp 8# ORIGINAL-NEXT: 100000f54: 48 83 ec 20 subq $32, %rsp 9# ORIGINAL-NEXT: 100000f58: c7 45 fc 00 00 00 00 movl $0, -4(%rbp) 10# ORIGINAL-NEXT: 100000f5f: 89 7d f8 movl %edi, -8(%rbp) 11# ORIGINAL-NEXT: 100000f62: 48 89 75 f0 movq %rsi, -16(%rbp) 12# ORIGINAL-NEXT: 100000f66: 83 7d f8 01 cmpl $1, -8(%rbp) 13# ORIGINAL-NEXT: 100000f6a: 7e 0a jle 0x100000f76 14# ORIGINAL-NEXT: 100000f6c: e8 25 00 00 00 callq 0x100000f96 15# ORIGINAL-NEXT: 100000f71: 89 45 fc movl %eax, -4(%rbp) 16# ORIGINAL-NEXT: 100000f74: eb 10 jmp 0x100000f86 17# ORIGINAL-NEXT: 100000f76: c7 45 ec 01 00 00 00 movl $1, -20(%rbp) 18# ORIGINAL-NEXT: 100000f7d: 8b 45 ec movl -20(%rbp), %eax 19# ORIGINAL-NEXT: 100000f80: 83 c0 02 addl $2, %eax 20# ORIGINAL-NEXT: 100000f83: 89 45 fc movl %eax, -4(%rbp) 21# ORIGINAL-NEXT: 100000f86: 8b 45 fc movl -4(%rbp), %eax 22# ORIGINAL-NEXT: 100000f89: 48 83 c4 20 addq $32, %rsp 23# ORIGINAL-NEXT: 100000f8d: 5d popq %rbp 24# ORIGINAL-NEXT: 100000f8e: c3 retq 25# ORIGINAL-NEXT: 100000f8f: fc cld 26# ORIGINAL-NEXT: 100000f90: 48 83 c4 20 addq $32, %rsp 27# ORIGINAL-NEXT: 100000f94: 5d popq %rbp 28# ORIGINAL-NEXT: 100000f95: c3 retq 29 30# RUN: llvm-bolt -o %t.reversed -reorder-blocks=reverse %t.exe 31# RUN: llvm-objdump --macho --disassemble-all --no-print-imm-hex %t.reversed | FileCheck --check-prefix=REVERSED %s 32 33# REVERSED: _main: 34# REVERSED-NEXT: 100000f50: 55 pushq %rbp 35# REVERSED-NEXT: 100000f51: 48 89 e5 movq %rsp, %rbp 36# REVERSED-NEXT: 100000f54: 48 83 ec 20 subq $32, %rsp 37# REVERSED-NEXT: 100000f58: c7 45 fc 00 00 00 00 movl $0, -4(%rbp) 38# REVERSED-NEXT: 100000f5f: 89 7d f8 movl %edi, -8(%rbp) 39# REVERSED-NEXT: 100000f62: 48 89 75 f0 movq %rsi, -16(%rbp) 40# REVERSED-NEXT: 100000f66: 83 7d f8 01 cmpl $1, -8(%rbp) 41# REVERSED-NEXT: 100000f6a: 7e 0b jle 0x100000f77 42# REVERSED-NEXT: 100000f6c: eb 1b jmp 0x100000f89 43# REVERSED-NEXT: 100000f6e: 8b 45 fc movl -4(%rbp), %eax 44# REVERSED-NEXT: 100000f71: 48 83 c4 20 addq $32, %rsp 45# REVERSED-NEXT: 100000f75: 5d popq %rbp 46# REVERSED-NEXT: 100000f76: c3 retq 47# REVERSED-NEXT: 100000f77: c7 45 ec 01 00 00 00 movl $1, -20(%rbp) 48# REVERSED-NEXT: 100000f7e: 8b 45 ec movl -20(%rbp), %eax 49# REVERSED-NEXT: 100000f81: 83 c0 02 addl $2, %eax 50# REVERSED-NEXT: 100000f84: 89 45 fc movl %eax, -4(%rbp) 51# REVERSED-NEXT: 100000f87: eb e5 jmp 0x100000f6e 52# REVERSED-NEXT: 100000f89: e8 08 00 00 00 callq 0x100000f96 53# REVERSED-NEXT: 100000f8e: 89 45 fc movl %eax, -4(%rbp) 54# REVERSED-NEXT: 100000f91: eb db jmp 0x100000f6e 55# REVERSED-NEXT: 100000f93: 20 5d c3 andb %bl, -61(%rbp) 56