xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s (revision d16b7486a53dcb8072b60ec6fcb4373a2d0c27b7)
1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2011-2020 Free Software Foundation, Inc.
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 3 of the License, or
8   (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18/* This file is compiled from gdb.arch/amd64-prologue-xmm.c
19   using -g -dA -S.  */
20
21	.file	"amd64-prologue-xmm.c"
22	.text
23.Ltext0:
24	.local	v
25	.comm	v,4,4
26	.local	fail
27	.comm	fail,4,4
28	.type	func, @function
29func:
30.LFB0:
31	.file 1 "gdb.arch/amd64-prologue-xmm.c"
32	# gdb.arch/amd64-prologue-xmm.c:22
33	.loc 1 22 0
34	.cfi_startproc
35	# basic block 2
36	pushq	%rbp
37	.cfi_def_cfa_offset 16
38	.cfi_offset 6, -16
39	movq	%rsp, %rbp
40	.cfi_def_cfa_register 6
41	subq	$72, %rsp
42	movq	%rsi, -168(%rbp)
43	movq	%rdx, -160(%rbp)
44	movq	%rcx, -152(%rbp)
45	movq	%r8, -144(%rbp)
46	movq	%r9, -136(%rbp)
47	testb	%al, %al
48	je	.L2
49	# basic block 3
50	# gdb.arch/amd64-prologue-xmm.c:22
51	.loc 1 22 0
52	movaps	%xmm0, -128(%rbp)
53	movaps	%xmm1, -112(%rbp)
54	movaps	%xmm2, -96(%rbp)
55	movaps	%xmm3, -80(%rbp)
56	movaps	%xmm4, -64(%rbp)
57	movaps	%xmm5, -48(%rbp)
58	movaps	%xmm6, -32(%rbp)
59	movaps	%xmm7, -16(%rbp)
60.L2:
61	# basic block 4
62	movl	%edi, -180(%rbp)
63	# gdb.arch/amd64-prologue-xmm.c:23
64	.loc 1 23 0
65	movl	-180(%rbp), %eax
66	movl	%eax, v(%rip)
67	# gdb.arch/amd64-prologue-xmm.c:24
68	.loc 1 24 0
69	leave
70	.cfi_def_cfa 7, 8
71	ret
72	.cfi_endproc
73.LFE0:
74	.size	func, .-func
75	.type	marker, @function
76marker:
77.LFB1:
78	# gdb.arch/amd64-prologue-xmm.c:28
79	.loc 1 28 0
80	.cfi_startproc
81	# basic block 2
82	pushq	%rbp
83	.cfi_def_cfa_offset 16
84	.cfi_offset 6, -16
85	movq	%rsp, %rbp
86	.cfi_def_cfa_register 6
87	# gdb.arch/amd64-prologue-xmm.c:29
88	.loc 1 29 0
89	popq	%rbp
90	.cfi_def_cfa 7, 8
91	ret
92	.cfi_endproc
93.LFE1:
94	.size	marker, .-marker
95	.globl	main
96	.type	main, @function
97main:
98.LFB2:
99	# gdb.arch/amd64-prologue-xmm.c:33
100	.loc 1 33 0
101	.cfi_startproc
102	# basic block 2
103	pushq	%rbp
104	.cfi_def_cfa_offset 16
105	.cfi_offset 6, -16
106	movq	%rsp, %rbp
107	.cfi_def_cfa_register 6
108	# gdb.arch/amd64-prologue-xmm.c:34
109	.loc 1 34 0
110	movl	$1, %edi
111	movl	$0, %eax
112	call	func
113	# gdb.arch/amd64-prologue-xmm.c:35
114	.loc 1 35 0
115	movl	$1, fail(%rip)
116	# gdb.arch/amd64-prologue-xmm.c:36
117	.loc 1 36 0
118	call	marker
119	# gdb.arch/amd64-prologue-xmm.c:37
120	.loc 1 37 0
121	movl	$0, %eax
122	# gdb.arch/amd64-prologue-xmm.c:38
123	.loc 1 38 0
124	popq	%rbp
125	.cfi_def_cfa 7, 8
126	ret
127	.cfi_endproc
128.LFE2:
129	.size	main, .-main
130.Letext0:
131	.section	.debug_info,"",@progbits
132.Ldebug_info0:
133	.long	0xc0	# Length of Compilation Unit Info
134	.value	0x4	# DWARF version number
135	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
136	.byte	0x8	# Pointer Size (in bytes)
137	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
138	.long	.LASF1	# DW_AT_producer: "GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
139	.byte	0x1	# DW_AT_language
140	.long	.LASF2	# DW_AT_name: "gdb.arch/amd64-prologue-xmm.c"
141	.long	.LASF3	# DW_AT_comp_dir: ""
142	.quad	.Ltext0	# DW_AT_low_pc
143	.quad	.Letext0	# DW_AT_high_pc
144	.long	.Ldebug_line0	# DW_AT_stmt_list
145	.uleb128 0x2	# (DIE (0x2d) DW_TAG_subprogram)
146	.long	.LASF4	# DW_AT_name: "func"
147	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
148	.byte	0x15	# DW_AT_decl_line
149			# DW_AT_prototyped
150	.quad	.LFB0	# DW_AT_low_pc
151	.quad	.LFE0	# DW_AT_high_pc
152	.uleb128 0x1	# DW_AT_frame_base
153	.byte	0x9c	# DW_OP_call_frame_cfa
154			# DW_AT_GNU_all_call_sites
155	.long	0x59	# DW_AT_sibling
156	.uleb128 0x3	# (DIE (0x4a) DW_TAG_formal_parameter)
157	.ascii "i\0"	# DW_AT_name
158	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
159	.byte	0x15	# DW_AT_decl_line
160	.long	0x59	# DW_AT_type
161	.uleb128 0x3	# DW_AT_location
162	.byte	0x91	# DW_OP_fbreg
163	.sleb128 -196
164	.uleb128 0x4	# (DIE (0x57) DW_TAG_unspecified_parameters)
165	.byte	0	# end of children of DIE 0x2d
166	.uleb128 0x5	# (DIE (0x59) DW_TAG_base_type)
167	.byte	0x4	# DW_AT_byte_size
168	.byte	0x5	# DW_AT_encoding
169	.ascii "int\0"	# DW_AT_name
170	.uleb128 0x6	# (DIE (0x60) DW_TAG_subprogram)
171	.long	.LASF5	# DW_AT_name: "marker"
172	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
173	.byte	0x1b	# DW_AT_decl_line
174			# DW_AT_prototyped
175	.quad	.LFB1	# DW_AT_low_pc
176	.quad	.LFE1	# DW_AT_high_pc
177	.uleb128 0x1	# DW_AT_frame_base
178	.byte	0x9c	# DW_OP_call_frame_cfa
179			# DW_AT_GNU_all_call_sites
180	.uleb128 0x7	# (DIE (0x79) DW_TAG_subprogram)
181			# DW_AT_external
182	.long	.LASF6	# DW_AT_name: "main"
183	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
184	.byte	0x20	# DW_AT_decl_line
185			# DW_AT_prototyped
186	.long	0x59	# DW_AT_type
187	.quad	.LFB2	# DW_AT_low_pc
188	.quad	.LFE2	# DW_AT_high_pc
189	.uleb128 0x1	# DW_AT_frame_base
190	.byte	0x9c	# DW_OP_call_frame_cfa
191			# DW_AT_GNU_all_tail_call_sites
192	.uleb128 0x8	# (DIE (0x96) DW_TAG_variable)
193	.ascii "v\0"	# DW_AT_name
194	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
195	.byte	0x12	# DW_AT_decl_line
196	.long	0xa9	# DW_AT_type
197	.uleb128 0x9	# DW_AT_location
198	.byte	0x3	# DW_OP_addr
199	.quad	v
200	.uleb128 0x9	# (DIE (0xa9) DW_TAG_volatile_type)
201	.long	0x59	# DW_AT_type
202	.uleb128 0xa	# (DIE (0xae) DW_TAG_variable)
203	.long	.LASF0	# DW_AT_name: "fail"
204	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
205	.byte	0x12	# DW_AT_decl_line
206	.long	0xa9	# DW_AT_type
207	.uleb128 0x9	# DW_AT_location
208	.byte	0x3	# DW_OP_addr
209	.quad	fail
210	.byte	0	# end of children of DIE 0xb
211	.section	.debug_abbrev,"",@progbits
212.Ldebug_abbrev0:
213	.uleb128 0x1	# (abbrev code)
214	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
215	.byte	0x1	# DW_children_yes
216	.uleb128 0x25	# (DW_AT_producer)
217	.uleb128 0xe	# (DW_FORM_strp)
218	.uleb128 0x13	# (DW_AT_language)
219	.uleb128 0xb	# (DW_FORM_data1)
220	.uleb128 0x3	# (DW_AT_name)
221	.uleb128 0xe	# (DW_FORM_strp)
222	.uleb128 0x1b	# (DW_AT_comp_dir)
223	.uleb128 0xe	# (DW_FORM_strp)
224	.uleb128 0x11	# (DW_AT_low_pc)
225	.uleb128 0x1	# (DW_FORM_addr)
226	.uleb128 0x12	# (DW_AT_high_pc)
227	.uleb128 0x1	# (DW_FORM_addr)
228	.uleb128 0x10	# (DW_AT_stmt_list)
229	.uleb128 0x17	# (DW_FORM_sec_offset)
230	.byte	0
231	.byte	0
232	.uleb128 0x2	# (abbrev code)
233	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
234	.byte	0x1	# DW_children_yes
235	.uleb128 0x3	# (DW_AT_name)
236	.uleb128 0xe	# (DW_FORM_strp)
237	.uleb128 0x3a	# (DW_AT_decl_file)
238	.uleb128 0xb	# (DW_FORM_data1)
239	.uleb128 0x3b	# (DW_AT_decl_line)
240	.uleb128 0xb	# (DW_FORM_data1)
241	.uleb128 0x27	# (DW_AT_prototyped)
242	.uleb128 0x19	# (DW_FORM_flag_present)
243	.uleb128 0x11	# (DW_AT_low_pc)
244	.uleb128 0x1	# (DW_FORM_addr)
245	.uleb128 0x12	# (DW_AT_high_pc)
246	.uleb128 0x1	# (DW_FORM_addr)
247	.uleb128 0x40	# (DW_AT_frame_base)
248	.uleb128 0x18	# (DW_FORM_exprloc)
249	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
250	.uleb128 0x19	# (DW_FORM_flag_present)
251	.uleb128 0x1	# (DW_AT_sibling)
252	.uleb128 0x13	# (DW_FORM_ref4)
253	.byte	0
254	.byte	0
255	.uleb128 0x3	# (abbrev code)
256	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
257	.byte	0	# DW_children_no
258	.uleb128 0x3	# (DW_AT_name)
259	.uleb128 0x8	# (DW_FORM_string)
260	.uleb128 0x3a	# (DW_AT_decl_file)
261	.uleb128 0xb	# (DW_FORM_data1)
262	.uleb128 0x3b	# (DW_AT_decl_line)
263	.uleb128 0xb	# (DW_FORM_data1)
264	.uleb128 0x49	# (DW_AT_type)
265	.uleb128 0x13	# (DW_FORM_ref4)
266	.uleb128 0x2	# (DW_AT_location)
267	.uleb128 0x18	# (DW_FORM_exprloc)
268	.byte	0
269	.byte	0
270	.uleb128 0x4	# (abbrev code)
271	.uleb128 0x18	# (TAG: DW_TAG_unspecified_parameters)
272	.byte	0	# DW_children_no
273	.byte	0
274	.byte	0
275	.uleb128 0x5	# (abbrev code)
276	.uleb128 0x24	# (TAG: DW_TAG_base_type)
277	.byte	0	# DW_children_no
278	.uleb128 0xb	# (DW_AT_byte_size)
279	.uleb128 0xb	# (DW_FORM_data1)
280	.uleb128 0x3e	# (DW_AT_encoding)
281	.uleb128 0xb	# (DW_FORM_data1)
282	.uleb128 0x3	# (DW_AT_name)
283	.uleb128 0x8	# (DW_FORM_string)
284	.byte	0
285	.byte	0
286	.uleb128 0x6	# (abbrev code)
287	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
288	.byte	0	# DW_children_no
289	.uleb128 0x3	# (DW_AT_name)
290	.uleb128 0xe	# (DW_FORM_strp)
291	.uleb128 0x3a	# (DW_AT_decl_file)
292	.uleb128 0xb	# (DW_FORM_data1)
293	.uleb128 0x3b	# (DW_AT_decl_line)
294	.uleb128 0xb	# (DW_FORM_data1)
295	.uleb128 0x27	# (DW_AT_prototyped)
296	.uleb128 0x19	# (DW_FORM_flag_present)
297	.uleb128 0x11	# (DW_AT_low_pc)
298	.uleb128 0x1	# (DW_FORM_addr)
299	.uleb128 0x12	# (DW_AT_high_pc)
300	.uleb128 0x1	# (DW_FORM_addr)
301	.uleb128 0x40	# (DW_AT_frame_base)
302	.uleb128 0x18	# (DW_FORM_exprloc)
303	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
304	.uleb128 0x19	# (DW_FORM_flag_present)
305	.byte	0
306	.byte	0
307	.uleb128 0x7	# (abbrev code)
308	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
309	.byte	0	# DW_children_no
310	.uleb128 0x3f	# (DW_AT_external)
311	.uleb128 0x19	# (DW_FORM_flag_present)
312	.uleb128 0x3	# (DW_AT_name)
313	.uleb128 0xe	# (DW_FORM_strp)
314	.uleb128 0x3a	# (DW_AT_decl_file)
315	.uleb128 0xb	# (DW_FORM_data1)
316	.uleb128 0x3b	# (DW_AT_decl_line)
317	.uleb128 0xb	# (DW_FORM_data1)
318	.uleb128 0x27	# (DW_AT_prototyped)
319	.uleb128 0x19	# (DW_FORM_flag_present)
320	.uleb128 0x49	# (DW_AT_type)
321	.uleb128 0x13	# (DW_FORM_ref4)
322	.uleb128 0x11	# (DW_AT_low_pc)
323	.uleb128 0x1	# (DW_FORM_addr)
324	.uleb128 0x12	# (DW_AT_high_pc)
325	.uleb128 0x1	# (DW_FORM_addr)
326	.uleb128 0x40	# (DW_AT_frame_base)
327	.uleb128 0x18	# (DW_FORM_exprloc)
328	.uleb128 0x2116	# (DW_AT_GNU_all_tail_call_sites)
329	.uleb128 0x19	# (DW_FORM_flag_present)
330	.byte	0
331	.byte	0
332	.uleb128 0x8	# (abbrev code)
333	.uleb128 0x34	# (TAG: DW_TAG_variable)
334	.byte	0	# DW_children_no
335	.uleb128 0x3	# (DW_AT_name)
336	.uleb128 0x8	# (DW_FORM_string)
337	.uleb128 0x3a	# (DW_AT_decl_file)
338	.uleb128 0xb	# (DW_FORM_data1)
339	.uleb128 0x3b	# (DW_AT_decl_line)
340	.uleb128 0xb	# (DW_FORM_data1)
341	.uleb128 0x49	# (DW_AT_type)
342	.uleb128 0x13	# (DW_FORM_ref4)
343	.uleb128 0x2	# (DW_AT_location)
344	.uleb128 0x18	# (DW_FORM_exprloc)
345	.byte	0
346	.byte	0
347	.uleb128 0x9	# (abbrev code)
348	.uleb128 0x35	# (TAG: DW_TAG_volatile_type)
349	.byte	0	# DW_children_no
350	.uleb128 0x49	# (DW_AT_type)
351	.uleb128 0x13	# (DW_FORM_ref4)
352	.byte	0
353	.byte	0
354	.uleb128 0xa	# (abbrev code)
355	.uleb128 0x34	# (TAG: DW_TAG_variable)
356	.byte	0	# DW_children_no
357	.uleb128 0x3	# (DW_AT_name)
358	.uleb128 0xe	# (DW_FORM_strp)
359	.uleb128 0x3a	# (DW_AT_decl_file)
360	.uleb128 0xb	# (DW_FORM_data1)
361	.uleb128 0x3b	# (DW_AT_decl_line)
362	.uleb128 0xb	# (DW_FORM_data1)
363	.uleb128 0x49	# (DW_AT_type)
364	.uleb128 0x13	# (DW_FORM_ref4)
365	.uleb128 0x2	# (DW_AT_location)
366	.uleb128 0x18	# (DW_FORM_exprloc)
367	.byte	0
368	.byte	0
369	.byte	0
370	.section	.debug_aranges,"",@progbits
371	.long	0x2c	# Length of Address Ranges Info
372	.value	0x2	# DWARF Version
373	.long	.Ldebug_info0	# Offset of Compilation Unit Info
374	.byte	0x8	# Size of Address
375	.byte	0	# Size of Segment Descriptor
376	.value	0	# Pad to 16 byte boundary
377	.value	0
378	.quad	.Ltext0	# Address
379	.quad	.Letext0-.Ltext0	# Length
380	.quad	0
381	.quad	0
382	.section	.debug_line,"",@progbits
383.Ldebug_line0:
384	.section	.debug_str,"MS",@progbits,1
385.LASF3:
386	.string	""
387.LASF0:
388	.string	"fail"
389.LASF4:
390	.string	"func"
391.LASF1:
392	.string	"GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
393.LASF2:
394	.string	"gdb.arch/amd64-prologue-xmm.c"
395.LASF5:
396	.string	"marker"
397.LASF6:
398	.string	"main"
399	.ident	"GCC: (GNU) 4.6.1 20110715 (Red Hat 4.6.1-3)"
400	.section	.note.GNU-stack,"",@progbits
401