xref: /llvm-project/bolt/test/X86/MachO/emit_new_binary_with_external_symbol.test (revision d755e10e7ac8abe7031c3f119df93541c0a78551)
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