xref: /llvm-project/bolt/test/X86/Inputs/jump_table_footprint_reduction.s (revision 4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae)
1	.text
2  .globl main
3  .type main, %function
4main:
5# FDATA: 0 [unknown] 0 1 main 0 0 1
6	.cfi_startproc
7LBB00:
8	subq	$0x8, %rsp
9	.cfi_def_cfa_offset 16
10	movl	$Input, %esi
11	movl	$SYMBOLat0x4006c4, %edi
12	xorl	%eax, %eax
13	movl	$0x0, Input(%rip)
14	callq	scanf@PLT
15	movl	Input(%rip), %edx
16	movl	$0xf4240, %eax
17LBB00_br: 	movl	%edx, %esi
18# FDATA: 1 main #LBB00_br# 1 main #Ltmp9# 0 0
19
20Ltmp9:
21	cmpl	$0x8, %edx
22Ltmp9_br: 	ja	Ltmp0
23# FDATA: 1 main #Ltmp9_br# 1 main #Ltmp0# 0 0
24# FDATA: 1 main #Ltmp9_br# 1 main #LFT0# 0 40
25
26LFT0:
27	movl	%edx, %ecx
28LFT0_br: 	jmpq	*"JUMP_TABLE/main.0"(,%rcx,8)
29# FDATA: 1 main #LFT0_br# 1 main #Ltmp8# 0 0
30# FDATA: 1 main #LFT0_br# 1 main #Ltmp7# 0 0
31# FDATA: 1 main #LFT0_br# 1 main #Ltmp3# 0 0
32# FDATA: 1 main #LFT0_br# 1 main #Ltmp2# 0 40
33# FDATA: 1 main #LFT0_br# 1 main #Ltmp1# 0 0
34# FDATA: 1 main #LFT0_br# 1 main #Ltmp5# 0 0
35# FDATA: 1 main #LFT0_br# 1 main #Ltmp4# 0 0
36# FDATA: 1 main #LFT0_br# 1 main #Ltmp6# 0 0
37# FDATA: 1 main #LFT0_br# 1 main #Ltmp0# 0 0
38
39Ltmp8:
40Ltmp8_br: 	addl	$0xa, %esi
41# FDATA: 1 main #Ltmp8_br# 1 main #Ltmp10# 0 0
42
43Ltmp10:
44	subl	$0x1, %eax
45Ltmp10_br: 	jne	Ltmp9
46# FDATA: 1 main #Ltmp10_br# 1 main #Ltmp9# 0 45
47# FDATA: 1 main #Ltmp10_br# 1 main #LFT1# 0 0
48
49LFT1:
50	movl	$SYMBOLat0x4006c7, %edi
51	xorl	%eax, %eax
52	movl	%esi, Value(%rip)
53	callq	printf@PLT
54	xorl	%eax, %eax
55	addq	$0x8, %rsp
56	.cfi_def_cfa_offset 8
57	retq
58	.cfi_def_cfa %rsp, 16
59
60Ltmp7:
61	addl	$0x9, %esi
62Ltmp7_br: 	jmp	Ltmp10
63# FDATA: 1 main #Ltmp7_br# 1 main #Ltmp10# 0 0
64
65Ltmp3:
66	addl	$0x5, %esi
67Ltmp3_br: 	jmp	Ltmp10
68# FDATA: 1 main #Ltmp3_br# 1 main #Ltmp10# 0 0
69
70Ltmp2:
71	addl	$0x4, %esi
72Ltmp2_br: 	jmp	Ltmp10
73# FDATA: 1 main #Ltmp2_br# 1 main #Ltmp10# 0 43
74
75Ltmp1:
76	addl	$0x3, %esi
77Ltmp1_br: 	jmp	Ltmp10
78# FDATA: 1 main #Ltmp1_br# 1 main #Ltmp10# 0 0
79
80Ltmp5:
81	addl	$0x7, %esi
82Ltmp5_br: 	jmp	Ltmp10
83# FDATA: 1 main #Ltmp5_br# 1 main #Ltmp10# 0 0
84
85Ltmp4:
86	addl	$0x6, %esi
87Ltmp4_br: 	jmp	Ltmp10
88# FDATA: 1 main #Ltmp4_br# 1 main #Ltmp10# 0 0
89
90Ltmp6:
91	addl	$0x8, %esi
92Ltmp6_br: 	jmp	Ltmp10
93# FDATA: 1 main #Ltmp6_br# 1 main #Ltmp10# 0 0
94
95Ltmp0:
96	addl	$0x2, %esi
97Ltmp0_br: 	jmp	Ltmp10
98# FDATA: 1 main #Ltmp0_br# 1 main #Ltmp10# 0 0
99
100	.cfi_endproc
101.size main, .-main
102# Jump tables
103.section .rodata
104"JUMP_TABLE/main.0":
105	.quad	Ltmp0
106	.quad	Ltmp1
107	.quad	Ltmp2
108	.quad	Ltmp3
109	.quad	Ltmp4
110	.quad	Ltmp5
111	.quad	Ltmp6
112	.quad	Ltmp7
113	.quad	Ltmp8
114
115# BinaryData
116"SYMBOLat0x4006c4":
117"SYMBOLat0x4006c7":
118.section .bss
119"Value":
120"Input":
121