1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2012-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 source file was generated by:
19   gcc -o gdb.reverse/singlejmp-reverse.S gdb.reverse/singlejmp-reverse.c -Wall -S -dA -O2 -g
20   */
21
22	.file	"singlejmp-reverse.c"
23	.text
24.Ltext0:
25	.p2align 4,,15
26	.type	g, @function
27g:
28.LFB0:
29	.file 1 "gdb.reverse/singlejmp-reverse.c"
30	# gdb.reverse/singlejmp-reverse.c:22
31	.loc 1 22 0
32	.cfi_startproc
33	# basic block 2
34	# gdb.reverse/singlejmp-reverse.c:23
35	.loc 1 23 0
36	movl	$2, v(%rip)
37	# gdb.reverse/singlejmp-reverse.c:24
38	.loc 1 24 0
39	ret
40	.cfi_endproc
41.LFE0:
42	.size	g, .-g
43	.p2align 4,,15
44	.type	f, @function
45f:
46.LFB1:
47	# gdb.reverse/singlejmp-reverse.c:28
48	.loc 1 28 0
49	.cfi_startproc
50	# basic block 2
51	# gdb.reverse/singlejmp-reverse.c:29
52	.loc 1 29 0
53	jmp	g
54	.cfi_endproc
55.LFE1:
56	.size	f, .-f
57	.section	.text.startup,"ax",@progbits
58	.p2align 4,,15
59	.globl	main
60	.type	main, @function
61main:
62.LFB2:
63	# gdb.reverse/singlejmp-reverse.c:36
64	.loc 1 36 0
65	.cfi_startproc
66	# basic block 2
67	subq	$8, %rsp
68.LCFI0:
69	.cfi_def_cfa_offset 16
70	# gdb.reverse/singlejmp-reverse.c:37
71	.loc 1 37 0
72	movl	$1, v(%rip)
73	# gdb.reverse/singlejmp-reverse.c:38
74	.loc 1 38 0
75	call	f
76	# gdb.reverse/singlejmp-reverse.c:39
77	.loc 1 39 0
78	call	nodebug
79	# gdb.reverse/singlejmp-reverse.c:40
80	.loc 1 40 0
81	movl	$3, v(%rip)
82	# gdb.reverse/singlejmp-reverse.c:42
83	.loc 1 42 0
84	xorl	%eax, %eax
85	addq	$8, %rsp
86.LCFI1:
87	.cfi_def_cfa_offset 8
88	ret
89	.cfi_endproc
90.LFE2:
91	.size	main, .-main
92	.comm	v,4,4
93	.text
94.Letext0:
95	.section	.debug_info,"",@progbits
96.Ldebug_info0:
97	.long	0xa1	# Length of Compilation Unit Info
98	.value	0x2	# DWARF version number
99	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
100	.byte	0x8	# Pointer Size (in bytes)
101	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
102	.long	.LASF0	# DW_AT_producer: "GNU C 4.6.4 20120911 (prerelease)"
103	.byte	0x1	# DW_AT_language
104	.long	.LASF1	# DW_AT_name: "gdb.reverse/singlejmp-reverse.c"
105	.long	.LASF2	# DW_AT_comp_dir: ""
106	.quad	0	# DW_AT_low_pc
107	.quad	0	# DW_AT_entry_pc
108	.long	.Ldebug_ranges0+0	# DW_AT_ranges
109	.long	.Ldebug_line0	# DW_AT_stmt_list
110	.uleb128 0x2	# (DIE (0x31) DW_TAG_subprogram)
111	.ascii "g\0"	# DW_AT_name
112	.byte	0x1	# DW_AT_decl_file (gdb.reverse/singlejmp-reverse.c)
113	.byte	0x15	# DW_AT_decl_line
114	.byte	0x1	# DW_AT_prototyped
115	.quad	.LFB0	# DW_AT_low_pc
116	.quad	.LFE0	# DW_AT_high_pc
117	.byte	0x2	# DW_AT_frame_base
118	.byte	0x77	# DW_OP_breg7
119	.sleb128 8
120	.uleb128 0x2	# (DIE (0x4a) DW_TAG_subprogram)
121	.ascii "f\0"	# DW_AT_name
122	.byte	0x1	# DW_AT_decl_file (gdb.reverse/singlejmp-reverse.c)
123	.byte	0x1b	# DW_AT_decl_line
124	.byte	0x1	# DW_AT_prototyped
125	.quad	.LFB1	# DW_AT_low_pc
126	.quad	.LFE1	# DW_AT_high_pc
127	.byte	0x2	# DW_AT_frame_base
128	.byte	0x77	# DW_OP_breg7
129	.sleb128 8
130	.uleb128 0x3	# (DIE (0x63) DW_TAG_subprogram)
131	.byte	0x1	# DW_AT_external
132	.long	.LASF3	# DW_AT_name: "main"
133	.byte	0x1	# DW_AT_decl_file (gdb.reverse/singlejmp-reverse.c)
134	.byte	0x23	# DW_AT_decl_line
135	.byte	0x1	# DW_AT_prototyped
136	.long	0x84	# DW_AT_type
137	.quad	.LFB2	# DW_AT_low_pc
138	.quad	.LFE2	# DW_AT_high_pc
139	.long	.LLST0	# DW_AT_frame_base
140	.uleb128 0x4	# (DIE (0x84) DW_TAG_base_type)
141	.byte	0x4	# DW_AT_byte_size
142	.byte	0x5	# DW_AT_encoding
143	.ascii "int\0"	# DW_AT_name
144	.uleb128 0x5	# (DIE (0x8b) DW_TAG_variable)
145	.ascii "v\0"	# DW_AT_name
146	.byte	0x1	# DW_AT_decl_file (gdb.reverse/singlejmp-reverse.c)
147	.byte	0x12	# DW_AT_decl_line
148	.long	0x9f	# DW_AT_type
149	.byte	0x1	# DW_AT_external
150	.byte	0x9	# DW_AT_location
151	.byte	0x3	# DW_OP_addr
152	.quad	v
153	.uleb128 0x6	# (DIE (0x9f) DW_TAG_volatile_type)
154	.long	0x84	# DW_AT_type
155	.byte	0	# end of children of DIE 0xb
156	.section	.debug_abbrev,"",@progbits
157.Ldebug_abbrev0:
158	.uleb128 0x1	# (abbrev code)
159	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
160	.byte	0x1	# DW_children_yes
161	.uleb128 0x25	# (DW_AT_producer)
162	.uleb128 0xe	# (DW_FORM_strp)
163	.uleb128 0x13	# (DW_AT_language)
164	.uleb128 0xb	# (DW_FORM_data1)
165	.uleb128 0x3	# (DW_AT_name)
166	.uleb128 0xe	# (DW_FORM_strp)
167	.uleb128 0x1b	# (DW_AT_comp_dir)
168	.uleb128 0xe	# (DW_FORM_strp)
169	.uleb128 0x11	# (DW_AT_low_pc)
170	.uleb128 0x1	# (DW_FORM_addr)
171	.uleb128 0x52	# (DW_AT_entry_pc)
172	.uleb128 0x1	# (DW_FORM_addr)
173	.uleb128 0x55	# (DW_AT_ranges)
174	.uleb128 0x6	# (DW_FORM_data4)
175	.uleb128 0x10	# (DW_AT_stmt_list)
176	.uleb128 0x6	# (DW_FORM_data4)
177	.byte	0
178	.byte	0
179	.uleb128 0x2	# (abbrev code)
180	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
181	.byte	0	# DW_children_no
182	.uleb128 0x3	# (DW_AT_name)
183	.uleb128 0x8	# (DW_FORM_string)
184	.uleb128 0x3a	# (DW_AT_decl_file)
185	.uleb128 0xb	# (DW_FORM_data1)
186	.uleb128 0x3b	# (DW_AT_decl_line)
187	.uleb128 0xb	# (DW_FORM_data1)
188	.uleb128 0x27	# (DW_AT_prototyped)
189	.uleb128 0xc	# (DW_FORM_flag)
190	.uleb128 0x11	# (DW_AT_low_pc)
191	.uleb128 0x1	# (DW_FORM_addr)
192	.uleb128 0x12	# (DW_AT_high_pc)
193	.uleb128 0x1	# (DW_FORM_addr)
194	.uleb128 0x40	# (DW_AT_frame_base)
195	.uleb128 0xa	# (DW_FORM_block1)
196	.byte	0
197	.byte	0
198	.uleb128 0x3	# (abbrev code)
199	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
200	.byte	0	# DW_children_no
201	.uleb128 0x3f	# (DW_AT_external)
202	.uleb128 0xc	# (DW_FORM_flag)
203	.uleb128 0x3	# (DW_AT_name)
204	.uleb128 0xe	# (DW_FORM_strp)
205	.uleb128 0x3a	# (DW_AT_decl_file)
206	.uleb128 0xb	# (DW_FORM_data1)
207	.uleb128 0x3b	# (DW_AT_decl_line)
208	.uleb128 0xb	# (DW_FORM_data1)
209	.uleb128 0x27	# (DW_AT_prototyped)
210	.uleb128 0xc	# (DW_FORM_flag)
211	.uleb128 0x49	# (DW_AT_type)
212	.uleb128 0x13	# (DW_FORM_ref4)
213	.uleb128 0x11	# (DW_AT_low_pc)
214	.uleb128 0x1	# (DW_FORM_addr)
215	.uleb128 0x12	# (DW_AT_high_pc)
216	.uleb128 0x1	# (DW_FORM_addr)
217	.uleb128 0x40	# (DW_AT_frame_base)
218	.uleb128 0x6	# (DW_FORM_data4)
219	.byte	0
220	.byte	0
221	.uleb128 0x4	# (abbrev code)
222	.uleb128 0x24	# (TAG: DW_TAG_base_type)
223	.byte	0	# DW_children_no
224	.uleb128 0xb	# (DW_AT_byte_size)
225	.uleb128 0xb	# (DW_FORM_data1)
226	.uleb128 0x3e	# (DW_AT_encoding)
227	.uleb128 0xb	# (DW_FORM_data1)
228	.uleb128 0x3	# (DW_AT_name)
229	.uleb128 0x8	# (DW_FORM_string)
230	.byte	0
231	.byte	0
232	.uleb128 0x5	# (abbrev code)
233	.uleb128 0x34	# (TAG: DW_TAG_variable)
234	.byte	0	# DW_children_no
235	.uleb128 0x3	# (DW_AT_name)
236	.uleb128 0x8	# (DW_FORM_string)
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 0x49	# (DW_AT_type)
242	.uleb128 0x13	# (DW_FORM_ref4)
243	.uleb128 0x3f	# (DW_AT_external)
244	.uleb128 0xc	# (DW_FORM_flag)
245	.uleb128 0x2	# (DW_AT_location)
246	.uleb128 0xa	# (DW_FORM_block1)
247	.byte	0
248	.byte	0
249	.uleb128 0x6	# (abbrev code)
250	.uleb128 0x35	# (TAG: DW_TAG_volatile_type)
251	.byte	0	# DW_children_no
252	.uleb128 0x49	# (DW_AT_type)
253	.uleb128 0x13	# (DW_FORM_ref4)
254	.byte	0
255	.byte	0
256	.byte	0
257	.section	.debug_loc,"",@progbits
258.Ldebug_loc0:
259.LLST0:
260	.quad	.LFB2	# Location list begin address (*.LLST0)
261	.quad	.LCFI0	# Location list end address (*.LLST0)
262	.value	0x2	# Location expression size
263	.byte	0x77	# DW_OP_breg7
264	.sleb128 8
265	.quad	.LCFI0	# Location list begin address (*.LLST0)
266	.quad	.LCFI1	# Location list end address (*.LLST0)
267	.value	0x2	# Location expression size
268	.byte	0x77	# DW_OP_breg7
269	.sleb128 16
270	.quad	.LCFI1	# Location list begin address (*.LLST0)
271	.quad	.LFE2	# Location list end address (*.LLST0)
272	.value	0x2	# Location expression size
273	.byte	0x77	# DW_OP_breg7
274	.sleb128 8
275	.quad	0	# Location list terminator begin (*.LLST0)
276	.quad	0	# Location list terminator end (*.LLST0)
277	.section	.debug_aranges,"",@progbits
278	.long	0x3c	# Length of Address Ranges Info
279	.value	0x2	# DWARF Version
280	.long	.Ldebug_info0	# Offset of Compilation Unit Info
281	.byte	0x8	# Size of Address
282	.byte	0	# Size of Segment Descriptor
283	.value	0	# Pad to 16 byte boundary
284	.value	0
285	.quad	.Ltext0	# Address
286	.quad	.Letext0-.Ltext0	# Length
287	.quad	.LFB2	# Address
288	.quad	.LFE2-.LFB2	# Length
289	.quad	0
290	.quad	0
291	.section	.debug_ranges,"",@progbits
292.Ldebug_ranges0:
293	.quad	.Ltext0	# Offset 0
294	.quad	.Letext0
295	.quad	.LFB2	# Offset 0x10
296	.quad	.LFE2
297	.quad	0
298	.quad	0
299	.section	.debug_line,"",@progbits
300.Ldebug_line0:
301	.section	.debug_str,"MS",@progbits,1
302.LASF3:
303	.string	"main"
304.LASF0:
305	.string	"GNU C 4.6.4 20120911 (prerelease)"
306.LASF2:
307	.string	""
308.LASF1:
309	.string	"gdb.reverse/singlejmp-reverse.c"
310	.ident	"GCC: (GNU) 4.6.4 20120911 (prerelease)"
311	.section	.note.GNU-stack,"",@progbits
312