1
2# TEST-OPTIONS:  unwind_test_main.c unwind_test_x86_64.s -arch x86_64
3
4
5	.data
6.globl _unwind_tester_list
7_unwind_tester_list:
8	.quad	_test_no_reg
9	.quad	_test_rbx
10	.quad	_test_rbx_r12
11	.quad	_test_rbx_r14
12	.quad	_test_rbx_r12_r13
13	.quad	_test_rbx_r12_r13_r14
14	.quad	_test_r14_r13_r12_rbx
15	.quad	_test_rbx_r12_r13_r14_r15
16	.quad	_test_r13_rbx_r14_r15_r12
17	.quad	0
18
19
20	.text
21
22LFE14:
23.globl _test_no_reg
24_test_no_reg:
25LFB13:
26	pushq	%rbp
27LCFI2:
28	movq	%rsp, %rbp
29LCFI3:
30	call	_uwind_to_main
31	leave
32	ret
33LFE13:
34
35
36.globl _test_rbx
37_test_rbx:
38LFB10:
39	pushq	%rbp
40LCFI8:
41	movq	%rsp, %rbp
42LCFI9:
43	pushq	%rbx
44LCFI10:
45	subq	$8, %rsp
46LCFI11:
47	movq	$0, %rbx
48	call	_uwind_to_main
49	addq	$8, %rsp
50	popq	%rbx
51	leave
52	ret
53LFE10:
54
55
56.globl _test_rbx_r12
57_test_rbx_r12:
58LFB8:
59	pushq	%rbp
60LCFI16:
61	movq	%rsp, %rbp
62LCFI17:
63	movq	%rbx, -16(%rbp)
64LCFI18:
65	movq	%r12, -8(%rbp)
66LCFI19:
67	subq	$16, %rsp
68LCFI20:
69	movq	$0, %rbx
70	movq	$0, %r12
71	call	_uwind_to_main
72	movq	(%rsp), %rbx
73	movq	8(%rsp), %r12
74	leave
75	ret
76LFE8:
77
78
79.globl _test_rbx_r14
80_test_rbx_r14:
81LFB8a:
82	pushq	%rbp
83LCFI16a:
84	movq	%rsp, %rbp
85LCFI17a:
86	movq	%rbx, -16(%rbp)
87LCFI18a:
88	movq	%r14, -8(%rbp)
89LCFI19a:
90	subq	$16, %rsp
91LCFI20a:
92	movq	$0, %rbx
93	movq	$0, %r14
94	call	_uwind_to_main
95	movq	(%rsp), %rbx
96	movq	8(%rsp), %r14
97	leave
98	ret
99LFE8a:
100
101
102.globl _test_rbx_r12_r13
103_test_rbx_r12_r13:
104LFB6:
105	pushq	%rbp
106LCFI26:
107	movq	%rsp, %rbp
108LCFI27:
109	movq	%rbx, -24(%rbp)
110LCFI28:
111	movq	%r12, -16(%rbp)
112LCFI29:
113	movq	%r13, -8(%rbp)
114LCFI30:
115	subq	$32, %rsp
116LCFI31:
117	movq	$0, %rbx
118	movq	$0, %r12
119	movq	$0, %r13
120	call	_uwind_to_main
121	movq	-24(%rbp), %rbx
122	movq	-16(%rbp), %r12
123	movq	-8(%rbp), %r13
124	leave
125	ret
126LFE6:
127
128.globl _test_rbx_r12_r13_r14
129_test_rbx_r12_r13_r14:
130LFB4:
131	pushq	%rbp
132LCFI38:
133	movq	%rsp, %rbp
134LCFI39:
135	movq	%rbx, -32(%rbp)
136LCFI40:
137	movq	%r12, -24(%rbp)
138LCFI41:
139	movq	%r13, -16(%rbp)
140LCFI42:
141	movq	%r14, -8(%rbp)
142LCFI43:
143	subq	$32, %rsp
144LCFI44:
145	movq	$0, %rbx
146	movq	$0, %r12
147	movq	$0, %r13
148	movq	$0, %r14
149	call	_uwind_to_main
150	movq	(%rsp), %rbx
151	movq	8(%rsp), %r12
152	movq	16(%rsp), %r13
153	movq	24(%rsp), %r14
154	leave
155	ret
156LFE4:
157
158.globl _test_r14_r13_r12_rbx
159_test_r14_r13_r12_rbx:
160LFB4a:
161	pushq	%rbp
162LCFI38a:
163	movq	%rsp, %rbp
164LCFI39a:
165	movq	%r14, -32(%rbp)
166LCFI40a:
167	movq	%r13, -24(%rbp)
168LCFI41a:
169	movq	%r12, -16(%rbp)
170LCFI42a:
171	movq	%rbx, -8(%rbp)
172LCFI43a:
173	subq	$32, %rsp
174LCFI44a:
175	movq	$0, %r14
176	movq	$0, %r13
177	movq	$0, %r12
178	movq	$0, %rbx
179	call	_uwind_to_main
180	movq	-32(%rbp), %r14
181	movq	-24(%rbp), %r13
182	movq	-16(%rbp), %r12
183	movq	-8(%rbp), %rbx
184	leave
185	ret
186LFE4a:
187
188
189.globl _test_rbx_r12_r13_r14_r15
190_test_rbx_r12_r13_r14_r15:
191LFB3:
192	pushq	%rbp
193LCFI45:
194	movq	%rsp, %rbp
195LCFI46:
196	movq	%rbx, -40(%rbp)
197LCFI47:
198	movq	%r12, -32(%rbp)
199LCFI48:
200	movq	%r13, -24(%rbp)
201LCFI49:
202	movq	%r14, -16(%rbp)
203LCFI50:
204	movq	%r15, -8(%rbp)
205LCFI51:
206	subq	$48, %rsp
207LCFI52:
208	movq	$0, %rbx
209	movq	$0, %r12
210	movq	$0, %r13
211	movq	$0, %r14
212	call	_uwind_to_main
213	movq	-40(%rbp), %rbx
214	movq	-32(%rbp), %r12
215	movq	-24(%rbp), %r13
216	movq	-16(%rbp), %r14
217	movq	-8(%rbp), %r15
218	leave
219	ret
220LFE3:
221
222
223.globl _test_r13_rbx_r14_r15_r12
224_test_r13_rbx_r14_r15_r12:
225LFB3a:
226	pushq	%rbp
227LCFI45a:
228	movq	%rsp, %rbp
229LCFI46a:
230	movq	%r13, -40(%rbp)
231LCFI47a:
232	movq	%rbx, -32(%rbp)
233LCFI48a:
234	movq	%r14, -24(%rbp)
235LCFI49a:
236	movq	%r15, -16(%rbp)
237LCFI50a:
238	movq	%r12, -8(%rbp)
239LCFI51a:
240	subq	$48, %rsp
241LCFI52a:
242	movq	$0, %rbx
243	movq	$0, %r12
244	movq	$0, %r13
245	movq	$0, %r14
246	movq	$0, %r15
247	call	_uwind_to_main
248	movq	-40(%rbp), %r13
249	movq	-32(%rbp), %rbx
250	movq	-24(%rbp), %r14
251	movq	-16(%rbp), %r15
252	movq	-8(%rbp), %r12
253	leave
254	ret
255LFE3a:
256
257
258
259
260	.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
261EH_frame1:
262	.set L$set$0,LECIE1-LSCIE1
263	.long L$set$0
264LSCIE1:
265	.long	0x0
266	.byte	0x1
267	.ascii "zR\0"
268	.byte	0x1
269	.byte	0x78
270	.byte	0x10
271	.byte	0x1
272	.byte	0x10
273	.byte	0xc
274	.byte	0x7
275	.byte	0x8
276	.byte	0x90	// DW_CFA_offset(ret_addr, -8)
277	.byte	0x1
278	.byte	0x90	// DW_CFA_offset(ret_addr, -8)
279	.byte	0x1		// this repeat is idiom that means don't create compact unwind info
280	.align 3
281LECIE1:
282
283.globl _test_no_reg.eh
284_test_no_reg.eh:
285LSFDE3:
286	.set L$set$5,LEFDE3-LASFDE3
287	.long L$set$5
288LASFDE3:
289	.long	LASFDE3-EH_frame1
290	.quad	LFB13-.
291	.set L$set$6,LFE13-LFB13
292	.quad L$set$6
293	.byte	0x0
294	.byte	0x4
295	.set L$set$7,LCFI2-LFB13
296	.long L$set$7
297	.byte	0xe
298	.byte	0x10
299	.byte	0x86
300	.byte	0x2
301	.byte	0x4
302	.set L$set$8,LCFI3-LCFI2
303	.long L$set$8
304	.byte	0xd
305	.byte	0x6
306	.align 3
307LEFDE3:
308
309.globl _test_rbx.eh
310_test_rbx.eh:
311LSFDE9:
312	.set L$set$17,LEFDE9-LASFDE9
313	.long L$set$17
314LASFDE9:
315	.long	LASFDE9-EH_frame1
316	.quad	LFB10-.
317	.set L$set$18,LFE10-LFB10
318	.quad L$set$18
319	.byte	0x0
320	.byte	0x4
321	.set L$set$19,LCFI8-LFB10
322	.long L$set$19
323	.byte	0xe
324	.byte	0x10
325	.byte	0x86
326	.byte	0x2
327	.byte	0x4
328	.set L$set$20,LCFI9-LCFI8
329	.long L$set$20
330	.byte	0xd
331	.byte	0x6
332	.byte	0x4
333	.set L$set$21,LCFI11-LCFI9
334	.long L$set$21
335	.byte	0x83
336	.byte	0x3
337	.align 3
338LEFDE9:
339
340.globl _test_rbx_r12.eh
341_test_rbx_r12.eh:
342LSFDE13:
343	.set L$set$27,LEFDE13-LASFDE13
344	.long L$set$27
345LASFDE13:
346	.long	LASFDE13-EH_frame1
347	.quad	LFB8-.
348	.set L$set$28,LFE8-LFB8
349	.quad L$set$28
350	.byte	0x0
351	.byte	0x4
352	.set L$set$29,LCFI16-LFB8
353	.long L$set$29
354	.byte	0xe
355	.byte	0x10
356	.byte	0x86
357	.byte	0x2
358	.byte	0x4
359	.set L$set$30,LCFI17-LCFI16
360	.long L$set$30
361	.byte	0xd
362	.byte	0x6
363	.byte	0x4
364	.set L$set$31,LCFI20-LCFI17
365	.long L$set$31
366	.byte	0x8c
367	.byte	0x3
368	.byte	0x83
369	.byte	0x4
370	.align 3
371LEFDE13:
372
373.globl _test_rbx_r14.eh
374_test_rbx_r14.eh:
375LSFDE13a:
376	.set L$set$27a,LEFDE13a-LASFDE13a
377	.long L$set$27a
378LASFDE13a:
379	.long	LASFDE13a-EH_frame1
380	.quad	LFB8a-.
381	.set L$set$28a,LFE8a-LFB8a
382	.quad L$set$28a
383	.byte	0x0
384	.byte	0x4
385	.set L$set$29a,LCFI16a-LFB8a
386	.long L$set$29a
387	.byte	0xe
388	.byte	0x10
389	.byte	0x86
390	.byte	0x2
391	.byte	0x4
392	.set L$set$30a,LCFI17a-LCFI16a
393	.long L$set$30a
394	.byte	0xd
395	.byte	0x6
396	.byte	0x4
397	.set L$set$31a,LCFI20a-LCFI17a
398	.long L$set$31a
399	.byte	0x8e
400	.byte	0x3
401	.byte	0x83
402	.byte	0x4
403	.align 3
404LEFDE13a:
405
406
407.globl _test_rbx_r12_r13.eh
408_test_rbx_r12_r13.eh:
409LSFDE17:
410	.set L$set$37,LEFDE17-LASFDE17
411	.long L$set$37
412LASFDE17:
413	.long	LASFDE17-EH_frame1
414	.quad	LFB6-.
415	.set L$set$38,LFE6-LFB6
416	.quad L$set$38
417	.byte	0x0
418	.byte	0x4
419	.set L$set$39,LCFI26-LFB6
420	.long L$set$39
421	.byte	0xe
422	.byte	0x10
423	.byte	0x86
424	.byte	0x2
425	.byte	0x4
426	.set L$set$40,LCFI27-LCFI26
427	.long L$set$40
428	.byte	0xd
429	.byte	0x6
430	.byte	0x4
431	.set L$set$41,LCFI31-LCFI27
432	.long L$set$41
433	.byte	0x8d
434	.byte	0x3
435	.byte	0x8c
436	.byte	0x4
437	.byte	0x83
438	.byte	0x5
439	.align 3
440LEFDE17:
441
442
443.globl _test_rbx_r12_r13_r14.eh
444_test_rbx_r12_r13_r14.eh:
445LSFDE21:
446	.set L$set$47,LEFDE21-LASFDE21
447	.long L$set$47
448LASFDE21:
449	.long	LASFDE21-EH_frame1
450	.quad	LFB4-.
451	.set L$set$48,LFE4-LFB4
452	.quad L$set$48
453	.byte	0x0
454	.byte	0x4
455	.set L$set$49,LCFI38-LFB4
456	.long L$set$49
457	.byte	0xe
458	.byte	0x10
459	.byte	0x86
460	.byte	0x2
461	.byte	0x4
462	.set L$set$50,LCFI39-LCFI38
463	.long L$set$50
464	.byte	0xd
465	.byte	0x6
466	.byte	0x4
467	.set L$set$51,LCFI44-LCFI39
468	.long L$set$51
469	.byte	0x8e
470	.byte	0x3
471	.byte	0x8d
472	.byte	0x4
473	.byte	0x8c
474	.byte	0x5
475	.byte	0x83
476	.byte	0x6
477	.align 3
478LEFDE21:
479
480.globl _test_r14_r13_r12_rbx.eh
481_test_r14_r13_r12_rbx.eh:
482LSFDE21a:
483	.set L$set$47a,LEFDE21a-LASFDE21a
484	.long L$set$47a
485LASFDE21a:
486	.long	LASFDE21a-EH_frame1
487	.quad	LFB4a-.
488	.set L$set$48a,LFE4a-LFB4a
489	.quad L$set$48a
490	.byte	0x0
491	.byte	0x4
492	.set L$set$49a,LCFI38a-LFB4a
493	.long L$set$49a
494	.byte	0xe
495	.byte	0x10
496	.byte	0x86
497	.byte	0x2
498	.byte	0x4
499	.set L$set$50a,LCFI39a-LCFI38a
500	.long L$set$50a
501	.byte	0xd
502	.byte	0x6
503	.byte	0x4
504	.set L$set$51a,LCFI44a-LCFI39a
505	.long L$set$51a
506	.byte	0x8e
507	.byte	0x6
508	.byte	0x8d
509	.byte	0x5
510	.byte	0x8c
511	.byte	0x4
512	.byte	0x83
513	.byte	0x3
514	.align 3
515LEFDE21a:
516
517
518.globl _test_rbx_r12_r13_r14_r15.eh
519_test_rbx_r12_r13_r14_r15.eh:
520LSFDE23:
521	.set L$set$52,LEFDE23-LASFDE23
522	.long L$set$52
523LASFDE23:
524	.long	LASFDE23-EH_frame1
525	.quad	LFB3-.
526	.set L$set$53,LFE3-LFB3
527	.quad L$set$53
528	.byte	0x0
529	.byte	0x4
530	.set L$set$54,LCFI45-LFB3
531	.long L$set$54
532	.byte	0xe
533	.byte	0x10
534	.byte	0x86
535	.byte	0x2
536	.byte	0x4
537	.set L$set$55,LCFI46-LCFI45
538	.long L$set$55
539	.byte	0xd
540	.byte	0x6
541	.byte	0x4
542	.set L$set$56,LCFI52-LCFI46
543	.long L$set$56
544	.byte	0x8f
545	.byte	0x3
546	.byte	0x8e
547	.byte	0x4
548	.byte	0x8d
549	.byte	0x5
550	.byte	0x8c
551	.byte	0x6
552	.byte	0x83
553	.byte	0x7
554	.align 3
555LEFDE23:
556
557
558.globl _test_r13_rbx_r14_r15_r12.eh
559_test_r13_rbx_r14_r15_r12.eh:
560LSFDE23a:
561	.set L$set$52a,LEFDE23a-LASFDE23a
562	.long L$set$52a
563LASFDE23a:
564	.long	LASFDE23a-EH_frame1
565	.quad	LFB3a-.
566	.set L$set$53a,LFE3a-LFB3a
567	.quad L$set$53a
568	.byte	0x0
569	.byte	0x4
570	.set L$set$54a,LCFI45a-LFB3a
571	.long L$set$54a
572	.byte	0xe
573	.byte	0x10
574	.byte	0x86
575	.byte	0x2
576	.byte	0x4
577	.set L$set$55a,LCFI46a-LCFI45a
578	.long L$set$55a
579	.byte	0xd
580	.byte	0x6
581	.byte	0x4
582	.set L$set$56a,LCFI52a-LCFI46a
583	.long L$set$56a
584	.byte	0x8c
585	.byte	0x3
586	.byte	0x8f
587	.byte	0x4
588	.byte	0x8e
589	.byte	0x5
590	.byte	0x83
591	.byte	0x6
592	.byte	0x8d
593	.byte	0x7
594	.align 3
595LEFDE23a:
596
597
598
599	.subsections_via_symbols
600