]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.btrace/x86_64-tailcall.S
Update copyright year range in all GDB files.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.btrace / x86_64-tailcall.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3 Copyright 2013-2019 Free Software Foundation, Inc.
4
5 Contributed by Intel Corp. <markus.t.metzger@intel.com>
6
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.
11
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.
16
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/>.
19
20
21 This file has been generated using:
22 gcc -S -O2 -dA -g tailcall.c -o x86_64-tailcall.S */
23
24 .file "tailcall.c"
25 .text
26 .Ltext0:
27 .p2align 4,,15
28 .type bar, @function
29 bar:
30 .LFB0:
31 .file 1 "tailcall.c"
32 # tailcall.c:22
33 .loc 1 22 0
34 .cfi_startproc
35 # BLOCK 2 freq:10000 seq:0
36 # PRED: ENTRY [100.0%] (FALLTHRU)
37 # tailcall.c:24
38 .loc 1 24 0
39 movl $42, %eax
40 # SUCC: EXIT [100.0%]
41 ret
42 .cfi_endproc
43 .LFE0:
44 .size bar, .-bar
45 .p2align 4,,15
46 .type foo, @function
47 foo:
48 .LFB1:
49 # tailcall.c:28
50 .loc 1 28 0
51 .cfi_startproc
52 # BLOCK 2 freq:10000 seq:0
53 # PRED: ENTRY [100.0%] (FALLTHRU)
54 # tailcall.c:29
55 .loc 1 29 0
56 jmp bar
57 # SUCC: EXIT [100.0%] (ABNORMAL,SIBCALL)
58 .LVL0:
59 .cfi_endproc
60 .LFE1:
61 .size foo, .-foo
62 .section .text.startup,"ax",@progbits
63 .p2align 4,,15
64 .globl main
65 .type main, @function
66 main:
67 .LFB2:
68 # tailcall.c:34
69 .loc 1 34 0
70 .cfi_startproc
71 # BLOCK 2 freq:10000 seq:0
72 # PRED: ENTRY [100.0%] (FALLTHRU)
73 # tailcall.c:37
74 .loc 1 37 0
75 call foo
76 .LVL1:
77 # tailcall.c:38
78 .loc 1 38 0
79 addl $1, %eax
80 .LVL2:
81 # SUCC: EXIT [100.0%]
82 # tailcall.c:41
83 .loc 1 41 0
84 ret
85 .cfi_endproc
86 .LFE2:
87 .size main, .-main
88 .text
89 .Letext0:
90 .section .debug_info,"",@progbits
91 .Ldebug_info0:
92 .long 0xb3 # Length of Compilation Unit Info
93 .value 0x4 # DWARF version number
94 .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
95 .byte 0x8 # 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=x86-64 -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 .quad 0 # DW_AT_low_pc
103 .long .Ldebug_line0 # DW_AT_stmt_list
104 .uleb128 0x2 # (DIE (0x29) 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
108 # DW_AT_prototyped
109 .long 0x46 # DW_AT_type
110 .quad .LFB0 # DW_AT_low_pc
111 .quad .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 (0x46) 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 (0x4d) 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
123 # DW_AT_prototyped
124 .long 0x46 # DW_AT_type
125 .quad .LFB1 # DW_AT_low_pc
126 .quad .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 0x7c # DW_AT_sibling
131 .uleb128 0x5 # (DIE (0x6e) DW_TAG_GNU_call_site)
132 .quad .LVL0 # DW_AT_low_pc
133 # DW_AT_GNU_tail_call
134 .long 0x29 # DW_AT_abstract_origin
135 .byte 0 # end of children of DIE 0x4d
136 .uleb128 0x6 # (DIE (0x7c) DW_TAG_subprogram)
137 # DW_AT_external
138 .long .LASF3 # DW_AT_name: "main"
139 .byte 0x1 # DW_AT_decl_file (tailcall.c)
140 .byte 0x21 # DW_AT_decl_line
141 # DW_AT_prototyped
142 .long 0x46 # DW_AT_type
143 .quad .LFB2 # DW_AT_low_pc
144 .quad .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 (0x99) 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 0x46 # DW_AT_type
153 .long .LLST0 # DW_AT_location
154 .uleb128 0x8 # (DIE (0xa8) DW_TAG_GNU_call_site)
155 .quad .LVL1 # DW_AT_low_pc
156 .long 0x4d # DW_AT_abstract_origin
157 .byte 0 # end of children of DIE 0x7c
158 .byte 0 # end of children of DIE 0xb
159 .section .debug_abbrev,"",@progbits
160 .Ldebug_abbrev0:
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)
178 .byte 0
179 .byte 0
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 0x7 # (DW_FORM_data8)
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)
201 .byte 0
202 .byte 0
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)
212 .byte 0
213 .byte 0
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 0x7 # (DW_FORM_data8)
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)
237 .byte 0
238 .byte 0
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)
248 .byte 0
249 .byte 0
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 0x7 # (DW_FORM_data8)
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)
273 .byte 0
274 .byte 0
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)
288 .byte 0
289 .byte 0
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)
297 .byte 0
298 .byte 0
299 .byte 0
300 .section .debug_loc,"",@progbits
301 .Ldebug_loc0:
302 .LLST0:
303 .quad .LVL1 # Location list begin address (*.LLST0)
304 .quad .LVL2 # Location list end address (*.LLST0)
305 .value 0x3 # Location expression size
306 .byte 0x70 # DW_OP_breg0
307 .sleb128 1
308 .byte 0x9f # DW_OP_stack_value
309 .quad .LVL2 # Location list begin address (*.LLST0)
310 .quad .LFE2 # Location list end address (*.LLST0)
311 .value 0x1 # Location expression size
312 .byte 0x50 # DW_OP_reg0
313 .quad 0 # Location list terminator begin (*.LLST0)
314 .quad 0 # Location list terminator end (*.LLST0)
315 .section .debug_aranges,"",@progbits
316 .long 0x3c # Length of Address Ranges Info
317 .value 0x2 # DWARF Version
318 .long .Ldebug_info0 # Offset of Compilation Unit Info
319 .byte 0x8 # Size of Address
320 .byte 0 # Size of Segment Descriptor
321 .value 0 # Pad to 16 byte boundary
322 .value 0
323 .quad .Ltext0 # Address
324 .quad .Letext0-.Ltext0 # Length
325 .quad .LFB2 # Address
326 .quad .LFE2-.LFB2 # Length
327 .quad 0
328 .quad 0
329 .section .debug_ranges,"",@progbits
330 .Ldebug_ranges0:
331 .quad .Ltext0 # Offset 0
332 .quad .Letext0
333 .quad .LFB2 # Offset 0x10
334 .quad .LFE2
335 .quad 0
336 .quad 0
337 .section .debug_line,"",@progbits
338 .Ldebug_line0:
339 .section .debug_str,"MS",@progbits,1
340 .LASF3:
341 .string "main"
342 .LASF1:
343 .string "tailcall.c"
344 .LASF0:
345 .string "GNU C 4.8.3 20140911 (Red Hat 4.8.3-7) -mtune=generic -march=x86-64 -g -O2"
346 .LASF4:
347 .string "answer"
348 .LASF2:
349 .string ""
350 .ident "GCC: (GNU) 4.8.3 20140911 (Red Hat 4.8.3-7)"
351 .section .note.GNU-stack,"",@progbits