1
2# TEST-OPTIONS:  unwind_test_main.c unwind_test_x86_64.s -arch x86_64
3# TEST-OPTIONS:  unwind_test_main.c unwind_test_x86_64.s -arch x86_64 -Wl,-no_compact_unwind
4
5
6	.data
7.globl _unwind_tester_list
8_unwind_tester_list:
9	.quad	_test_no_reg
10	.quad	Ltest_rbx
11	.quad	_test_rbx_pad_r12
12	.quad	_test_rbx_same_value
13	.quad	_test_rbx_same_register
14	.quad	0
15
16
17	.text
18
19
20.globl _test_big_frameless_stack_odd_dwarf
21_test_big_frameless_stack_odd_dwarf:
22L100:
23	subq	$160016, %rsp
24L102:
25	movq	$0, %rbx
26	call	_uwind_to_main
27	addq	$160016, %rsp
28	ret
29L103:
30
31
32LFE14:
33.globl _test_no_reg
34_test_no_reg:
35LFB13:
36	pushq	%rbp
37LCFI2:
38	movq	%rsp, %rbp
39LCFI3:
40	call	_uwind_to_main
41	leave
42	ret
43LFE13:
44
45
46Ltest_rbx:
47LFB10:
48	pushq	%rbp
49LCFI8:
50	movq	%rsp, %rbp
51LCFI9:
52	pushq	%rbx
53LCFI10:
54	subq	$8, %rsp
55LCFI11:
56	movq	$0, %rbx
57	call	_uwind_to_main
58	addq	$8, %rsp
59	popq	%rbx
60	leave
61	ret
62LFE10:
63
64
65.globl _test_rbx_pad_r12
66_test_rbx_pad_r12:
67LFB8:
68	pushq	%rbp
69LCFI16:
70	movq	%rsp, %rbp
71LCFI17:
72	movq	%rbx, -56(%rbp)
73LCFI18:
74	movq	%r12, -8(%rbp)
75LCFI19:
76	subq	$64, %rsp
77LCFI20:
78	movq	$0, %rbx
79	movq	$0, %r12
80	call	_uwind_to_main
81	movq	(%rsp), %rbx
82	movq	8(%rsp), %r12
83	leave
84	ret
85LFE8:
86
87
88.globl _test_rbx_same_value
89_test_rbx_same_value:
90LFB10b:
91	jmp		L33
92	pushq	%rbx
93LCFI3b:
94	movq	$0, %rbx
95	call	_uwind_to_main
96	popq	%rbx
97	ret
98L33:
99	pushq	$0
100	call	_uwind_to_main
101	popq	%rax
102	ret
103LFE10b:
104
105
106.globl _test_rbx_same_register
107_test_rbx_same_register:
108LFB10c:
109	jmp		L34
110	pushq	%rbx
111LCFI3c:
112	movq	$0, %rbx
113	call	_uwind_to_main
114	popq	%rbx
115	ret
116L34:
117	pushq	$0
118	call	_uwind_to_main
119	popq	%rax
120	ret
121LFE10c:
122
123
124
125
126	.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
127EH_frame1:
128	.set L$set$0,LECIE1-LSCIE1
129	.long L$set$0
130LSCIE1:
131	.long	0x0
132	.byte	0x1
133	.ascii "zR\0"
134	.byte	0x1
135	.byte	0x78
136	.byte	0x10
137	.byte	0x1
138	.byte	0x10
139	.byte	0xc
140	.byte	0x7
141	.byte	0x8
142	.byte	0x90
143	.byte	0x1
144	.align 3
145LECIE1:
146
147.globl _test_no_reg.eh
148_test_no_reg.eh:
149LSFDE3:
150	.set L$set$5,LEFDE3-LASFDE3
151	.long L$set$5
152LASFDE3:
153	.long	LASFDE3-EH_frame1
154	.quad	LFB13-.
155	.set L$set$6,LFE13-LFB13
156	.quad L$set$6
157	.byte	0x0
158	.byte	0x4
159	.set L$set$7,LCFI2-LFB13
160	.long L$set$7
161	.byte	0xe
162	.byte	0x10
163	.byte	0x86
164	.byte	0x2
165	.byte	0x4
166	.set L$set$8,LCFI3-LCFI2
167	.long L$set$8
168	.byte	0xd
169	.byte	0x6
170	.align 3
171LEFDE3:
172
173Ltest_rbx.eh:
174LSFDE9:
175	.set L$set$17,LEFDE9-LASFDE9
176	.long L$set$17
177LASFDE9:
178	.long	LASFDE9-EH_frame1
179	.quad	LFB10-.
180	.set L$set$18,LFE10-LFB10
181	.quad L$set$18
182	.byte	0x0
183	.byte	0x4
184	.set L$set$19,LCFI8-LFB10
185	.long L$set$19
186	.byte	0xe
187	.byte	0x10
188	.byte	0x86
189	.byte	0x2
190	.byte	0x4
191	.set L$set$20,LCFI9-LCFI8
192	.long L$set$20
193	.byte	0xd
194	.byte	0x6
195	.byte	0x4
196	.set L$set$21,LCFI11-LCFI9
197	.long L$set$21
198	.byte	0x83
199	.byte	0x3
200	.align 3
201LEFDE9:
202
203.globl _test_rbx_pad_r12.eh
204_test_rbx_pad_r12.eh:
205LSFDE13:
206	.set L$set$27,LEFDE13-LASFDE13
207	.long L$set$27
208LASFDE13:
209	.long	LASFDE13-EH_frame1
210	.quad	LFB8-.
211	.set L$set$28,LFE8-LFB8
212	.quad L$set$28
213	.byte	0x0
214	.byte	0x4
215	.set L$set$29,LCFI16-LFB8
216	.long L$set$29
217	.byte	0xe
218	.byte	0x10
219	.byte	0x86
220	.byte	0x2
221	.byte	0x4
222	.set L$set$30,LCFI17-LCFI16
223	.long L$set$30
224	.byte	0xd
225	.byte	0x6
226	.byte	0x4
227	.set L$set$31,LCFI20-LCFI17
228	.long L$set$31
229	.byte	0x8c
230	.byte	0x3
231	.byte	0x83
232	.byte	0x9
233	.align 3
234LEFDE13:
235
236
237
238.globl _test_big_frameless_stack_odd_dwarf.eh
239_test_big_frameless_stack_odd_dwarf.eh:
240	.set L$set$12a,LEFDE9a-LASFDE9a
241	.long L$set$12a	# FDE Length
242LASFDE9a:
243	.long	LASFDE9a-EH_frame1	# FDE CIE offset
244	.quad	L100-.	# FDE initial location
245	.set L$set$13a,L103-L100
246	.quad L$set$13a	# FDE address range
247	.byte	0x0	# uleb128 0x0; Augmentation size
248	.byte	0x4	# DW_CFA_advance_loc4
249	.long	7
250	.byte	0xc	# DW_CFA_def_cfa
251	.byte	0x07	# uleb128 7
252	.byte	0x90,0xe2,0x9	# uleb128 0x27110
253	.align 3
254LEFDE9a:
255
256
257.globl _test_rbx_same_value.eh
258_test_rbx_same_value.eh:
259LSFDE9b:
260	.set L$set$12,LEFDE9b-LASFDE9b
261	.long L$set$12	# FDE Length
262LASFDE9b:
263	.long	LASFDE9b-EH_frame1	# FDE CIE offset
264	.quad	LFB10b-.	# FDE initial location
265	.set L$set$13,LFE10b-LFB10b
266	.quad L$set$13	# FDE address range
267	.byte	0x0	# uleb128 0x0; Augmentation size
268	.byte	0x4	# DW_CFA_advance_loc4
269	.set L$set$14,LCFI3b-LFB10b
270	.long L$set$14
271	.byte	0xe	# DW_CFA_def_cfa_offset
272	.byte	0x10	# uleb128 0x10
273	.byte	0x83	# DW_CFA_offset, column 0x3
274	.byte	0x2	# uleb128 0x2
275	.byte	0x4	# DW_CFA_advance_loc4
276	.set L$set$15,L33-LCFI3b
277	.long L$set$15
278	.byte	0x08	# DW_CFA_same_value
279	.byte	0x3	# uleb128 0x3
280	.align 3
281LEFDE9b:
282
283
284.globl _test_rbx_same_register.eh
285_test_rbx_same_register.eh:
286LSFDE9c:
287	.set L$set$12c,LEFDE9c-LASFDE9c
288	.long L$set$12c	# FDE Length
289LASFDE9c:
290	.long	LASFDE9c-EH_frame1	# FDE CIE offset
291	.quad	LFB10c-.	# FDE initial location
292	.set L$set$16c,LFE10c-LFB10c
293	.quad L$set$16c	# FDE address range
294	.byte	0x0	# uleb128 0x0; Augmentation size
295	.byte	0x4	# DW_CFA_advance_loc4
296	.set L$set$17c,LCFI3c-LFB10c
297	.long L$set$17c
298	.byte	0xe	# DW_CFA_def_cfa_offset
299	.byte	0x10	# uleb128 0x10
300	.byte	0x83	# DW_CFA_offset, column 0x3
301	.byte	0x2	# uleb128 0x2
302	.byte	0x4	# DW_CFA_advance_loc4
303	.set L$set$18c,L34-LCFI3c
304	.long L$set$18c
305	.byte	0x09	# DW_CFA_register
306	.byte	0x3	# uleb128 0x3
307	.byte	0x3	# uleb128 0x3
308	.align 3
309LEFDE9c:
310
311
312