xref: /llvm-project/bolt/test/X86/Inputs/exc4sw.S (revision d36bd0857289c3e89b170c7dcf21c4574fca701c)
1// Generated from g++ exception4.cpp -fomit-frame-pointer -S -O3
2// Manually modified to trigger shrink-wrapping in function main
3	.text
4	.p2align 4,,15
5	.globl	_Z3fooi
6	.type	_Z3fooi, @function
7_Z3fooi:
8.LFB12:
9	.cfi_startproc
10	subq	$8, %rsp
11	.cfi_def_cfa_offset 16
12	cmpl	$1, %edi
13	movl	$1, %edi
14	jle	.L2
15	call	__cxa_allocate_exception
16	xorl	%edx, %edx
17	movl	$_ZTI4ExcG, %esi
18	movq	%rax, %rdi
19	call	__cxa_throw
20.L2:
21	call	__cxa_allocate_exception
22	xorl	%edx, %edx
23	movl	$_ZTI4ExcC, %esi
24	movq	%rax, %rdi
25	call	__cxa_throw
26	.cfi_endproc
27.LFE12:
28	.size	_Z3fooi, .-_Z3fooi
29	.p2align 4,,15
30	.globl	_Z11filter_onlyi
31	.type	_Z11filter_onlyi, @function
32_Z11filter_onlyi:
33.LFB13:
34	.cfi_startproc
35	.cfi_personality 0x3,__gxx_personality_v0
36	.cfi_lsda 0x3,.LLSDA13
37	subq	$8, %rsp
38	.cfi_def_cfa_offset 16
39.LEHB0:
40	call	_Z3fooi
41.LEHE0:
42.L8:
43	addq	$1, %rdx
44	movq	%rax, %rdi
45	je	.L7
46.LEHB1:
47	call	_Unwind_Resume
48.L7:
49	call	__cxa_call_unexpected
50.LEHE1:
51	.cfi_endproc
52.LFE13:
53	.globl	__gxx_personality_v0
54	.section	.gcc_except_table,"a",@progbits
55	.align 4
56.LLSDA13:
57	.byte	0xff
58	.byte	0x3
59	.uleb128 .LLSDATT13-.LLSDATTD13
60.LLSDATTD13:
61	.byte	0x1
62	.uleb128 .LLSDACSE13-.LLSDACSB13
63.LLSDACSB13:
64	.uleb128 .LEHB0-.LFB13
65	.uleb128 .LEHE0-.LEHB0
66	.uleb128 .L8-.LFB13
67	.uleb128 0x1
68	.uleb128 .LEHB1-.LFB13
69	.uleb128 .LEHE1-.LEHB1
70	.uleb128 0
71	.uleb128 0
72.LLSDACSE13:
73	.byte	0x7f
74	.byte	0
75	.align 4
76	.long	_ZTI4ExcA
77	.long	_ZTI4ExcB
78	.long	_ZTI4ExcC
79	.long	_ZTI4ExcD
80	.long	_ZTI4ExcE
81	.long	_ZTI4ExcF
82.LLSDATT13:
83	.byte	0x1
84	.byte	0x2
85	.byte	0x3
86	.byte	0x4
87	.byte	0x5
88	.byte	0x6
89	.byte	0
90	.text
91	.size	_Z11filter_onlyi, .-_Z11filter_onlyi
92	.section	.rodata.str1.8,"aMS",@progbits,1
93	.align 8
94.LC0:
95	.string	"this statement is cold and should be outlined"
96	.text
97	.p2align 4,,15
98	.globl	_Z12never_throwsv
99	.type	_Z12never_throwsv, @function
100_Z12never_throwsv:
101.LFB14:
102	.cfi_startproc
103	.cfi_personality 0x3,__gxx_personality_v0
104	.cfi_lsda 0x3,.LLSDA14
105	subq	$8, %rsp
106	.cfi_def_cfa_offset 16
107	movl	$.LC0, %edi
108.LEHB2:
109	call	puts
110.LEHE2:
111	addq	$8, %rsp
112	.cfi_remember_state
113	.cfi_def_cfa_offset 8
114	ret
115.L13:
116	.cfi_restore_state
117	addq	$1, %rdx
118	movq	%rax, %rdi
119	je	.L12
120.LEHB3:
121	call	_Unwind_Resume
122.L12:
123	call	__cxa_call_unexpected
124.LEHE3:
125	.cfi_endproc
126.LFE14:
127	.section	.gcc_except_table,"a",@progbits
128	.align 4
129.LLSDA14:
130	.byte	0xff
131	.byte	0x3
132	.uleb128 .LLSDATT14-.LLSDATTD14
133.LLSDATTD14:
134	.byte	0x1
135	.uleb128 .LLSDACSE14-.LLSDACSB14
136.LLSDACSB14:
137	.uleb128 .LEHB2-.LFB14
138	.uleb128 .LEHE2-.LEHB2
139	.uleb128 .L13-.LFB14
140	.uleb128 0x1
141	.uleb128 .LEHB3-.LFB14
142	.uleb128 .LEHE3-.LEHB3
143	.uleb128 0
144	.uleb128 0
145.LLSDACSE14:
146	.byte	0x7f
147	.byte	0
148	.align 4
149.LLSDATT14:
150	.byte	0
151	.text
152	.size	_Z12never_throwsv, .-_Z12never_throwsv
153	.section	.rodata.str1.1,"aMS",@progbits,1
154.LC1:
155	.string	"catch 2"
156.LC2:
157	.string	"catch 1"
158.LC3:
159	.string	"caught ExcC"
160.LC4:
161	.string	"caught ExcG"
162	.section	.text.startup,"ax",@progbits
163	.p2align 4,,15
164	.globl	main
165	.type	main, @function
166main:
167.LFB15:
168	.cfi_startproc
169	.cfi_personality 0x3,__gxx_personality_v0
170	.cfi_lsda 0x3,.LLSDA15
171	pushq	%r13
172	.cfi_def_cfa_offset 16
173	.cfi_offset 13, -16
174	pushq	%r12
175	.cfi_def_cfa_offset 24
176	.cfi_offset 12, -24
177	pushq	%rbp
178	.cfi_def_cfa_offset 32
179	.cfi_offset 6, -32
180	movl	$10, %ebp
181	pushq	%rbx
182	.cfi_def_cfa_offset 40
183	.cfi_offset 3, -40
184	movl	%edi, %ebx
185	subq	$8, %rsp
186	.cfi_def_cfa_offset 48
187.Lcheck:
188  cmpl $2, %ebx
189  je .Lmyexit
190.Lloop_pre_header:
191	movl	$10, %ebp
192  jmp .L18
193.L18:
194	cmpl	$2, %ebx
195	je	.Lmyexit
196.L17:
197	movl	$1, %edi
198	call	__cxa_allocate_exception
199	xorl	%edx, %edx
200	movl	$_ZTI4ExcA, %esi
201	movq	%rax, %rdi
202.LEHB4:
203	call	__cxa_throw
204.LEHE4:
205.L47:
206	call	_Z12never_throwsv
207	call	_Z12never_throwsv
208	.p2align 4,,5
209	jmp	.L17
210.L37:
211	cmpq	$2, %rdx
212	movq	%rax, %rdi
213	jne	.L22
214	call	__cxa_begin_catch
215	movl	$.LC1, %edi
216.LEHB5:
217	call	puts
218.LEHE5:
219	movl	$8, %edi
220	call	__cxa_allocate_exception
221	movl	$4, %edi
222	movq	%rax, %r12
223.LEHB6:
224	call	_Znwm
225.LEHE6:
226	movl	$0, (%rax)
227	xorl	%edx, %edx
228	movq	%rax, (%r12)
229	movl	$_ZTIPi, %esi
230	movq	%r12, %rdi
231.LEHB7:
232	call	__cxa_throw
233.LEHE7:
234.L39:
235	movq	%rax, %r13
236	movq	%r12, %rdi
237	movq	%r13, %r12
238	call	__cxa_free_exception
239.L24:
240	call	__cxa_end_catch
241	movq	%r12, %rdi
242.L22:
243	call	__cxa_begin_catch
244	movl	$.LC2, %edi
245.LEHB8:
246	call	puts
247.LEHE8:
248.LEHB9:
249	call	__cxa_end_catch
250.LEHE9:
251	movl	%ebx, %edi
252.LEHB10:
253	call	_Z11filter_onlyi
254.LEHE10:
255.L38:
256	movq	%rax, %r12
257	jmp	.L24
258.L41:
259	cmpq	$4, %rdx
260	movq	%rax, %rdi
261	movq	%rdx, %rax
262	jne	.L29
263	call	__cxa_begin_catch
264	movl	$.LC3, %edi
265.LEHB11:
266	call	puts
267.LEHE11:
268.L35:
269	call	__cxa_end_catch
270	subl	$1, %ebp
271	jne	.L18
272.Lmyexit:
273	popq	%rdx
274	.cfi_remember_state
275	.cfi_def_cfa_offset 40
276	popq	%rbx
277	.cfi_def_cfa_offset 32
278	popq	%rbp
279	.cfi_def_cfa_offset 24
280	popq	%r12
281	.cfi_def_cfa_offset 16
282	xorl	%eax, %eax
283	popq	%r13
284	.cfi_def_cfa_offset 8
285	ret
286.L40:
287	.cfi_restore_state
288	movq	%rax, %rbx
289	call	__cxa_end_catch
290	movq	%rbx, %rdi
291.LEHB12:
292	call	_Unwind_Resume
293.LEHE12:
294.L42:
295	movq	%rax, %r13
296	movq	%rdx, %r12
297	call	__cxa_end_catch
298	movq	%r13, %rdi
299	movq	%r12, %rax
300.L29:
301	cmpq	$3, %rax
302	jne	.L46
303	call	__cxa_begin_catch
304	movl	$.LC4, %edi
305.LEHB13:
306	call	puts
307.LEHE13:
308	jmp	.L35
309.L43:
310	movq	%rax, %rbx
311	call	__cxa_end_catch
312	movq	%rbx, %rdi
313.L46:
314.LEHB14:
315	call	_Unwind_Resume
316  jmp .L43
317.LEHE14:
318	.cfi_endproc
319.LFE15:
320	.section	.gcc_except_table,"a",@progbits
321	.align 4
322.LLSDA15:
323	.byte	0xff
324	.byte	0x3
325	.uleb128 .LLSDATT15-.LLSDATTD15
326.LLSDATTD15:
327	.byte	0x1
328	.uleb128 .LLSDACSE15-.LLSDACSB15
329.LLSDACSB15:
330	.uleb128 .LEHB4-.LFB15
331	.uleb128 .LEHE4-.LEHB4
332	.uleb128 .L37-.LFB15
333	.uleb128 0x3
334	.uleb128 .LEHB5-.LFB15
335	.uleb128 .LEHE5-.LEHB5
336	.uleb128 .L38-.LFB15
337	.uleb128 0x5
338	.uleb128 .LEHB6-.LFB15
339	.uleb128 .LEHE6-.LEHB6
340	.uleb128 .L39-.LFB15
341	.uleb128 0x5
342	.uleb128 .LEHB7-.LFB15
343	.uleb128 .LEHE7-.LEHB7
344	.uleb128 .L38-.LFB15
345	.uleb128 0x5
346	.uleb128 .LEHB8-.LFB15
347	.uleb128 .LEHE8-.LEHB8
348	.uleb128 .L40-.LFB15
349	.uleb128 0
350	.uleb128 .LEHB9-.LFB15
351	.uleb128 .LEHE9-.LEHB9
352	.uleb128 0
353	.uleb128 0
354	.uleb128 .LEHB10-.LFB15
355	.uleb128 .LEHE10-.LEHB10
356	.uleb128 .L41-.LFB15
357	.uleb128 0x9
358	.uleb128 .LEHB11-.LFB15
359	.uleb128 .LEHE11-.LEHB11
360	.uleb128 .L42-.LFB15
361	.uleb128 0xb
362	.uleb128 .LEHB12-.LFB15
363	.uleb128 .LEHE12-.LEHB12
364	.uleb128 0
365	.uleb128 0
366	.uleb128 .LEHB13-.LFB15
367	.uleb128 .LEHE13-.LEHB13
368	.uleb128 .L43-.LFB15
369	.uleb128 0
370	.uleb128 .LEHB14-.LFB15
371	.uleb128 .LEHE14-.LEHB14
372	.uleb128 0
373	.uleb128 0
374.LLSDACSE15:
375	.byte	0x1
376	.byte	0
377	.byte	0x2
378	.byte	0x7d
379	.byte	0
380	.byte	0x7b
381	.byte	0x3
382	.byte	0
383	.byte	0x4
384	.byte	0x7d
385	.byte	0
386	.byte	0x7b
387	.align 4
388	.long	_ZTI4ExcC
389	.long	_ZTI4ExcG
390	.long	_ZTI4ExcA
391	.long	0
392
393.LLSDATT15:
394	.section	.text.startup
395	.size	main, .-main
396	.weak	_ZTI4ExcG
397	.section	.rodata._ZTI4ExcG,"aG",@progbits,_ZTI4ExcG,comdat
398	.align 16
399	.type	_ZTI4ExcG, @object
400	.size	_ZTI4ExcG, 16
401_ZTI4ExcG:
402	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
403	.quad	_ZTS4ExcG
404	.weak	_ZTS4ExcG
405	.section	.rodata._ZTS4ExcG,"aG",@progbits,_ZTS4ExcG,comdat
406	.type	_ZTS4ExcG, @object
407	.size	_ZTS4ExcG, 6
408_ZTS4ExcG:
409	.string	"4ExcG"
410	.weak	_ZTI4ExcC
411	.section	.rodata._ZTI4ExcC,"aG",@progbits,_ZTI4ExcC,comdat
412	.align 16
413	.type	_ZTI4ExcC, @object
414	.size	_ZTI4ExcC, 16
415_ZTI4ExcC:
416	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
417	.quad	_ZTS4ExcC
418	.weak	_ZTS4ExcC
419	.section	.rodata._ZTS4ExcC,"aG",@progbits,_ZTS4ExcC,comdat
420	.type	_ZTS4ExcC, @object
421	.size	_ZTS4ExcC, 6
422_ZTS4ExcC:
423	.string	"4ExcC"
424	.weak	_ZTI4ExcA
425	.section	.rodata._ZTI4ExcA,"aG",@progbits,_ZTI4ExcA,comdat
426	.align 16
427	.type	_ZTI4ExcA, @object
428	.size	_ZTI4ExcA, 16
429_ZTI4ExcA:
430	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
431	.quad	_ZTS4ExcA
432	.weak	_ZTS4ExcA
433	.section	.rodata._ZTS4ExcA,"aG",@progbits,_ZTS4ExcA,comdat
434	.type	_ZTS4ExcA, @object
435	.size	_ZTS4ExcA, 6
436_ZTS4ExcA:
437	.string	"4ExcA"
438	.weak	_ZTI4ExcB
439	.section	.rodata._ZTI4ExcB,"aG",@progbits,_ZTI4ExcB,comdat
440	.align 16
441	.type	_ZTI4ExcB, @object
442	.size	_ZTI4ExcB, 16
443_ZTI4ExcB:
444	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
445	.quad	_ZTS4ExcB
446	.weak	_ZTS4ExcB
447	.section	.rodata._ZTS4ExcB,"aG",@progbits,_ZTS4ExcB,comdat
448	.type	_ZTS4ExcB, @object
449	.size	_ZTS4ExcB, 6
450_ZTS4ExcB:
451	.string	"4ExcB"
452	.weak	_ZTI4ExcD
453	.section	.rodata._ZTI4ExcD,"aG",@progbits,_ZTI4ExcD,comdat
454	.align 16
455	.type	_ZTI4ExcD, @object
456	.size	_ZTI4ExcD, 16
457_ZTI4ExcD:
458	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
459	.quad	_ZTS4ExcD
460	.weak	_ZTS4ExcD
461	.section	.rodata._ZTS4ExcD,"aG",@progbits,_ZTS4ExcD,comdat
462	.type	_ZTS4ExcD, @object
463	.size	_ZTS4ExcD, 6
464_ZTS4ExcD:
465	.string	"4ExcD"
466	.weak	_ZTI4ExcE
467	.section	.rodata._ZTI4ExcE,"aG",@progbits,_ZTI4ExcE,comdat
468	.align 16
469	.type	_ZTI4ExcE, @object
470	.size	_ZTI4ExcE, 16
471_ZTI4ExcE:
472	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
473	.quad	_ZTS4ExcE
474	.weak	_ZTS4ExcE
475	.section	.rodata._ZTS4ExcE,"aG",@progbits,_ZTS4ExcE,comdat
476	.type	_ZTS4ExcE, @object
477	.size	_ZTS4ExcE, 6
478_ZTS4ExcE:
479	.string	"4ExcE"
480	.weak	_ZTI4ExcF
481	.section	.rodata._ZTI4ExcF,"aG",@progbits,_ZTI4ExcF,comdat
482	.align 16
483	.type	_ZTI4ExcF, @object
484	.size	_ZTI4ExcF, 16
485_ZTI4ExcF:
486	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
487	.quad	_ZTS4ExcF
488	.weak	_ZTS4ExcF
489	.section	.rodata._ZTS4ExcF,"aG",@progbits,_ZTS4ExcF,comdat
490	.type	_ZTS4ExcF, @object
491	.size	_ZTS4ExcF, 6
492_ZTS4ExcF:
493	.string	"4ExcF"
494