1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2013-2017 Free Software Foundation, Inc.
5 Contributed by Intel Corp. <markus.t.metzger@intel.com>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 This file has been generated using:
22 gcc -S -O2 -dA -g tailcall.c -o i686-tailcall.S */
35 # BLOCK 2 freq:10000 seq:0
36 # PRED: ENTRY [100.0%] (FALLTHRU)
52 # BLOCK 2 freq:10000 seq:0
53 # PRED: ENTRY [100.0%] (FALLTHRU)
57 # SUCC: EXIT [100.0%] (ABNORMAL,SIBCALL)
62 .section .text.startup,"ax",@progbits
71 # BLOCK 2 freq:10000 seq:0
72 # PRED: ENTRY [100.0%] (FALLTHRU)
90 .section .debug_info,"",@progbits
92 .long 0x8f # Length of Compilation Unit Info
93 .value 0x4 # DWARF version number
94 .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
95 .byte 0x4 # Pointer Size (in bytes)
96 .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
97 .long .LASF0 # DW_AT_producer: "GNU C 4.8.3 20140911 (Red Hat 4.8.3-7) -mtune=generic -march=i686 -g -O2"
98 .byte 0x1 # DW_AT_language
99 .long .LASF1 # DW_AT_name: "tailcall.c"
100 .long .LASF2 # DW_AT_comp_dir: ""
101 .long .Ldebug_ranges0+0 # DW_AT_ranges
102 .long 0 # DW_AT_low_pc
103 .long .Ldebug_line0 # DW_AT_stmt_list
104 .uleb128 0x2 # (DIE (0x25) DW_TAG_subprogram)
105 .ascii "bar\0" # DW_AT_name
106 .byte 0x1 # DW_AT_decl_file (tailcall.c)
107 .byte 0x15 # DW_AT_decl_line
109 .long 0x3a # DW_AT_type
110 .long .LFB0 # DW_AT_low_pc
111 .long .LFE0-.LFB0 # DW_AT_high_pc
112 .uleb128 0x1 # DW_AT_frame_base
113 .byte 0x9c # DW_OP_call_frame_cfa
114 # DW_AT_GNU_all_call_sites
115 .uleb128 0x3 # (DIE (0x3a) DW_TAG_base_type)
116 .byte 0x4 # DW_AT_byte_size
117 .byte 0x5 # DW_AT_encoding
118 .ascii "int\0" # DW_AT_name
119 .uleb128 0x4 # (DIE (0x41) DW_TAG_subprogram)
120 .ascii "foo\0" # DW_AT_name
121 .byte 0x1 # DW_AT_decl_file (tailcall.c)
122 .byte 0x1b # DW_AT_decl_line
124 .long 0x3a # DW_AT_type
125 .long .LFB1 # DW_AT_low_pc
126 .long .LFE1-.LFB1 # DW_AT_high_pc
127 .uleb128 0x1 # DW_AT_frame_base
128 .byte 0x9c # DW_OP_call_frame_cfa
129 # DW_AT_GNU_all_call_sites
130 .long 0x64 # DW_AT_sibling
131 .uleb128 0x5 # (DIE (0x5a) DW_TAG_GNU_call_site)
132 .long .LVL0 # DW_AT_low_pc
133 # DW_AT_GNU_tail_call
134 .long 0x25 # DW_AT_abstract_origin
135 .byte 0 # end of children of DIE 0x41
136 .uleb128 0x6 # (DIE (0x64) DW_TAG_subprogram)
138 .long .LASF3 # DW_AT_name: "main"
139 .byte 0x1 # DW_AT_decl_file (tailcall.c)
140 .byte 0x21 # DW_AT_decl_line
142 .long 0x3a # DW_AT_type
143 .long .LFB2 # DW_AT_low_pc
144 .long .LFE2-.LFB2 # DW_AT_high_pc
145 .uleb128 0x1 # DW_AT_frame_base
146 .byte 0x9c # DW_OP_call_frame_cfa
147 # DW_AT_GNU_all_call_sites
148 .uleb128 0x7 # (DIE (0x79) DW_TAG_variable)
149 .long .LASF4 # DW_AT_name: "answer"
150 .byte 0x1 # DW_AT_decl_file (tailcall.c)
151 .byte 0x23 # DW_AT_decl_line
152 .long 0x3a # DW_AT_type
153 .long .LLST0 # DW_AT_location
154 .uleb128 0x8 # (DIE (0x88) DW_TAG_GNU_call_site)
155 .long .LVL1 # DW_AT_low_pc
156 .long 0x41 # DW_AT_abstract_origin
157 .byte 0 # end of children of DIE 0x64
158 .byte 0 # end of children of DIE 0xb
159 .section .debug_abbrev,"",@progbits
161 .uleb128 0x1 # (abbrev code)
162 .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
163 .byte 0x1 # DW_children_yes
164 .uleb128 0x25 # (DW_AT_producer)
165 .uleb128 0xe # (DW_FORM_strp)
166 .uleb128 0x13 # (DW_AT_language)
167 .uleb128 0xb # (DW_FORM_data1)
168 .uleb128 0x3 # (DW_AT_name)
169 .uleb128 0xe # (DW_FORM_strp)
170 .uleb128 0x1b # (DW_AT_comp_dir)
171 .uleb128 0xe # (DW_FORM_strp)
172 .uleb128 0x55 # (DW_AT_ranges)
173 .uleb128 0x17 # (DW_FORM_sec_offset)
174 .uleb128 0x11 # (DW_AT_low_pc)
175 .uleb128 0x1 # (DW_FORM_addr)
176 .uleb128 0x10 # (DW_AT_stmt_list)
177 .uleb128 0x17 # (DW_FORM_sec_offset)
180 .uleb128 0x2 # (abbrev code)
181 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
182 .byte 0 # DW_children_no
183 .uleb128 0x3 # (DW_AT_name)
184 .uleb128 0x8 # (DW_FORM_string)
185 .uleb128 0x3a # (DW_AT_decl_file)
186 .uleb128 0xb # (DW_FORM_data1)
187 .uleb128 0x3b # (DW_AT_decl_line)
188 .uleb128 0xb # (DW_FORM_data1)
189 .uleb128 0x27 # (DW_AT_prototyped)
190 .uleb128 0x19 # (DW_FORM_flag_present)
191 .uleb128 0x49 # (DW_AT_type)
192 .uleb128 0x13 # (DW_FORM_ref4)
193 .uleb128 0x11 # (DW_AT_low_pc)
194 .uleb128 0x1 # (DW_FORM_addr)
195 .uleb128 0x12 # (DW_AT_high_pc)
196 .uleb128 0x6 # (DW_FORM_data4)
197 .uleb128 0x40 # (DW_AT_frame_base)
198 .uleb128 0x18 # (DW_FORM_exprloc)
199 .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
200 .uleb128 0x19 # (DW_FORM_flag_present)
203 .uleb128 0x3 # (abbrev code)
204 .uleb128 0x24 # (TAG: DW_TAG_base_type)
205 .byte 0 # DW_children_no
206 .uleb128 0xb # (DW_AT_byte_size)
207 .uleb128 0xb # (DW_FORM_data1)
208 .uleb128 0x3e # (DW_AT_encoding)
209 .uleb128 0xb # (DW_FORM_data1)
210 .uleb128 0x3 # (DW_AT_name)
211 .uleb128 0x8 # (DW_FORM_string)
214 .uleb128 0x4 # (abbrev code)
215 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
216 .byte 0x1 # DW_children_yes
217 .uleb128 0x3 # (DW_AT_name)
218 .uleb128 0x8 # (DW_FORM_string)
219 .uleb128 0x3a # (DW_AT_decl_file)
220 .uleb128 0xb # (DW_FORM_data1)
221 .uleb128 0x3b # (DW_AT_decl_line)
222 .uleb128 0xb # (DW_FORM_data1)
223 .uleb128 0x27 # (DW_AT_prototyped)
224 .uleb128 0x19 # (DW_FORM_flag_present)
225 .uleb128 0x49 # (DW_AT_type)
226 .uleb128 0x13 # (DW_FORM_ref4)
227 .uleb128 0x11 # (DW_AT_low_pc)
228 .uleb128 0x1 # (DW_FORM_addr)
229 .uleb128 0x12 # (DW_AT_high_pc)
230 .uleb128 0x6 # (DW_FORM_data4)
231 .uleb128 0x40 # (DW_AT_frame_base)
232 .uleb128 0x18 # (DW_FORM_exprloc)
233 .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
234 .uleb128 0x19 # (DW_FORM_flag_present)
235 .uleb128 0x1 # (DW_AT_sibling)
236 .uleb128 0x13 # (DW_FORM_ref4)
239 .uleb128 0x5 # (abbrev code)
240 .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
241 .byte 0 # DW_children_no
242 .uleb128 0x11 # (DW_AT_low_pc)
243 .uleb128 0x1 # (DW_FORM_addr)
244 .uleb128 0x2115 # (DW_AT_GNU_tail_call)
245 .uleb128 0x19 # (DW_FORM_flag_present)
246 .uleb128 0x31 # (DW_AT_abstract_origin)
247 .uleb128 0x13 # (DW_FORM_ref4)
250 .uleb128 0x6 # (abbrev code)
251 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
252 .byte 0x1 # DW_children_yes
253 .uleb128 0x3f # (DW_AT_external)
254 .uleb128 0x19 # (DW_FORM_flag_present)
255 .uleb128 0x3 # (DW_AT_name)
256 .uleb128 0xe # (DW_FORM_strp)
257 .uleb128 0x3a # (DW_AT_decl_file)
258 .uleb128 0xb # (DW_FORM_data1)
259 .uleb128 0x3b # (DW_AT_decl_line)
260 .uleb128 0xb # (DW_FORM_data1)
261 .uleb128 0x27 # (DW_AT_prototyped)
262 .uleb128 0x19 # (DW_FORM_flag_present)
263 .uleb128 0x49 # (DW_AT_type)
264 .uleb128 0x13 # (DW_FORM_ref4)
265 .uleb128 0x11 # (DW_AT_low_pc)
266 .uleb128 0x1 # (DW_FORM_addr)
267 .uleb128 0x12 # (DW_AT_high_pc)
268 .uleb128 0x6 # (DW_FORM_data4)
269 .uleb128 0x40 # (DW_AT_frame_base)
270 .uleb128 0x18 # (DW_FORM_exprloc)
271 .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
272 .uleb128 0x19 # (DW_FORM_flag_present)
275 .uleb128 0x7 # (abbrev code)
276 .uleb128 0x34 # (TAG: DW_TAG_variable)
277 .byte 0 # DW_children_no
278 .uleb128 0x3 # (DW_AT_name)
279 .uleb128 0xe # (DW_FORM_strp)
280 .uleb128 0x3a # (DW_AT_decl_file)
281 .uleb128 0xb # (DW_FORM_data1)
282 .uleb128 0x3b # (DW_AT_decl_line)
283 .uleb128 0xb # (DW_FORM_data1)
284 .uleb128 0x49 # (DW_AT_type)
285 .uleb128 0x13 # (DW_FORM_ref4)
286 .uleb128 0x2 # (DW_AT_location)
287 .uleb128 0x17 # (DW_FORM_sec_offset)
290 .uleb128 0x8 # (abbrev code)
291 .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
292 .byte 0 # DW_children_no
293 .uleb128 0x11 # (DW_AT_low_pc)
294 .uleb128 0x1 # (DW_FORM_addr)
295 .uleb128 0x31 # (DW_AT_abstract_origin)
296 .uleb128 0x13 # (DW_FORM_ref4)
300 .section .debug_loc,"",@progbits
303 .long .LVL1 # Location list begin address (*.LLST0)
304 .long .LVL2 # Location list end address (*.LLST0)
305 .value 0x3 # Location expression size
306 .byte 0x70 # DW_OP_breg0
308 .byte 0x9f # DW_OP_stack_value
309 .long .LVL2 # Location list begin address (*.LLST0)
310 .long .LFE2 # Location list end address (*.LLST0)
311 .value 0x1 # Location expression size
312 .byte 0x50 # DW_OP_reg0
313 .long 0 # Location list terminator begin (*.LLST0)
314 .long 0 # Location list terminator end (*.LLST0)
315 .section .debug_aranges,"",@progbits
316 .long 0x24 # Length of Address Ranges Info
317 .value 0x2 # DWARF Version
318 .long .Ldebug_info0 # Offset of Compilation Unit Info
319 .byte 0x4 # Size of Address
320 .byte 0 # Size of Segment Descriptor
321 .value 0 # Pad to 8 byte boundary
323 .long .Ltext0 # Address
324 .long .Letext0-.Ltext0 # Length
325 .long .LFB2 # Address
326 .long .LFE2-.LFB2 # Length
329 .section .debug_ranges,"",@progbits
331 .long .Ltext0 # Offset 0
333 .long .LFB2 # Offset 0x8
337 .section .debug_line,"",@progbits
339 .section .debug_str,"MS",@progbits,1
345 .string "GNU C 4.8.3 20140911 (Red Hat 4.8.3-7) -mtune=generic -march=i686 -g -O2"
350 .ident "GCC: (GNU) 4.8.3 20140911 (Red Hat 4.8.3-7)"
351 .section .note.GNU-stack,"",@progbits