Imported Upstream version 7.8
[platform/upstream/gdb.git] / gdb / testsuite / gdb.arch / amd64-tailcall-cxx1.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2012-2014 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    g++ -o gdb.arch/amd64-tailcall-cxx1.S gdb.arch/amd64-tailcall-cxx1.cc -Wall -S -dA -O2 -g
20    Fedora GCC was used here to also test the case of missing DW_AT_linkage_name.
21    */
22
23         .file   "amd64-tailcall-cxx1.cc"
24         .text
25 .Ltext0:
26         .p2align 4,,15
27         .globl  _Z1gi
28         .type   _Z1gi, @function
29 _Z1gi:
30 .LFB0:
31         .file 1 "gdb.arch/amd64-tailcall-cxx1.cc"
32         # gdb.arch/amd64-tailcall-cxx1.cc:22
33         .loc 1 22 0
34         .cfi_startproc
35 .LVL0:
36 # BLOCK 2 freq:10000 seq:0
37 # PRED: ENTRY [100.0%]  (FALLTHRU)
38         # gdb.arch/amd64-tailcall-cxx1.cc:23
39         .loc 1 23 0
40         movl    %edi, v(%rip)
41 # SUCC: EXIT [100.0%] 
42         ret
43         .cfi_endproc
44 .LFE0:
45         .size   _Z1gi, .-_Z1gi
46         .section        .text.startup,"ax",@progbits
47         .p2align 4,,15
48         .globl  main
49         .type   main, @function
50 main:
51 .LFB1:
52         # gdb.arch/amd64-tailcall-cxx1.cc:30
53         .loc 1 30 0
54         .cfi_startproc
55 # BLOCK 2 freq:10000 seq:0
56 # PRED: ENTRY [100.0%]  (FALLTHRU)
57         subq    $8, %rsp
58         .cfi_def_cfa_offset 16
59         # gdb.arch/amd64-tailcall-cxx1.cc:31
60         .loc 1 31 0
61         movl    $1, %edi
62         call    _Z1fi
63 .LVL1:
64         # gdb.arch/amd64-tailcall-cxx1.cc:32
65         .loc 1 32 0
66         xorl    %eax, %eax
67         addq    $8, %rsp
68         .cfi_def_cfa_offset 8
69 # SUCC: EXIT [100.0%] 
70         ret
71         .cfi_endproc
72 .LFE1:
73         .size   main, .-main
74         .globl  v
75         .bss
76         .align 4
77         .type   v, @object
78         .size   v, 4
79 v:
80         .zero   4
81         .text
82 .Letext0:
83         .section        .debug_info,"",@progbits
84 .Ldebug_info0:
85         .long   0xb4    # Length of Compilation Unit Info
86         .value  0x4     # DWARF version number
87         .long   .Ldebug_abbrev0 # Offset Into Abbrev. Section
88         .byte   0x8     # Pointer Size (in bytes)
89         .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
90         .long   .LASF1  # DW_AT_producer: "GNU C++ 4.8.0 20130220 (Red Hat 4.8.0-0.14) -mtune=generic -march=x86-64 -g -O2"
91         .byte   0x4     # DW_AT_language
92         .long   .LASF2  # DW_AT_name: "gdb.arch/amd64-tailcall-cxx1.cc"
93         .long   .LASF3  # DW_AT_comp_dir: ""
94         .long   .Ldebug_ranges0+0       # DW_AT_ranges
95         .quad   0       # DW_AT_low_pc
96         .long   .Ldebug_line0   # DW_AT_stmt_list
97         .uleb128 0x2    # (DIE (0x29) DW_TAG_subprogram)
98                         # DW_AT_external
99         .ascii "g\0"    # DW_AT_name
100         .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc)
101         .byte   0x15    # DW_AT_decl_line
102         .long   .LASF4  # DW_AT_linkage_name: "_Z1gi"
103         .quad   .LFB0   # DW_AT_low_pc
104         .quad   .LFE0-.LFB0     # DW_AT_high_pc
105         .uleb128 0x1    # DW_AT_frame_base
106         .byte   0x9c    # DW_OP_call_frame_cfa
107                         # DW_AT_GNU_all_call_sites
108         .long   0x54    # DW_AT_sibling
109         .uleb128 0x3    # (DIE (0x48) DW_TAG_formal_parameter)
110         .ascii "x\0"    # DW_AT_name
111         .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc)
112         .byte   0x15    # DW_AT_decl_line
113         .long   0x54    # DW_AT_type
114         .uleb128 0x1    # DW_AT_location
115         .byte   0x55    # DW_OP_reg5
116         .byte   0       # end of children of DIE 0x29
117         .uleb128 0x4    # (DIE (0x54) DW_TAG_base_type)
118         .byte   0x4     # DW_AT_byte_size
119         .byte   0x5     # DW_AT_encoding
120         .ascii "int\0"  # DW_AT_name
121         .uleb128 0x5    # (DIE (0x5b) DW_TAG_subprogram)
122                         # DW_AT_external
123         .long   .LASF0  # DW_AT_name: "main"
124         .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc)
125         .byte   0x1d    # DW_AT_decl_line
126         .long   0x54    # DW_AT_type
127         .quad   .LFB1   # DW_AT_low_pc
128         .quad   .LFE1-.LFB1     # DW_AT_high_pc
129         .uleb128 0x1    # DW_AT_frame_base
130         .byte   0x9c    # DW_OP_call_frame_cfa
131                         # DW_AT_GNU_all_call_sites
132         .long   0x90    # DW_AT_sibling
133         .uleb128 0x6    # (DIE (0x7c) DW_TAG_GNU_call_site)
134         .quad   .LVL1   # DW_AT_low_pc
135         .long   0xa8    # DW_AT_abstract_origin
136         .uleb128 0x7    # (DIE (0x89) DW_TAG_GNU_call_site_parameter)
137         .uleb128 0x1    # DW_AT_location
138         .byte   0x55    # DW_OP_reg5
139         .uleb128 0x1    # DW_AT_GNU_call_site_value
140         .byte   0x31    # DW_OP_lit1
141         .byte   0       # end of children of DIE 0x7c
142         .byte   0       # end of children of DIE 0x5b
143         .uleb128 0x8    # (DIE (0x90) DW_TAG_variable)
144         .ascii "v\0"    # DW_AT_name
145         .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc)
146         .byte   0x12    # DW_AT_decl_line
147         .long   0xa3    # DW_AT_type
148                         # DW_AT_external
149         .uleb128 0x9    # DW_AT_location
150         .byte   0x3     # DW_OP_addr
151         .quad   v
152         .uleb128 0x9    # (DIE (0xa3) DW_TAG_volatile_type)
153         .long   0x54    # DW_AT_type
154         .uleb128 0xa    # (DIE (0xa8) DW_TAG_subprogram)
155                         # DW_AT_external
156         .ascii "f\0"    # DW_AT_name
157         .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-tailcall-cxx1.cc)
158         .byte   0x1a    # DW_AT_decl_line
159         .long   .LASF5  # DW_AT_linkage_name: "_Z1fi"
160                         # DW_AT_declaration
161         .uleb128 0xb    # (DIE (0xb1) DW_TAG_formal_parameter)
162         .long   0x54    # DW_AT_type
163         .byte   0       # end of children of DIE 0xa8
164         .byte   0       # end of children of DIE 0xb
165         .section        .debug_abbrev,"",@progbits
166 .Ldebug_abbrev0:
167         .uleb128 0x1    # (abbrev code)
168         .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
169         .byte   0x1     # DW_children_yes
170         .uleb128 0x25   # (DW_AT_producer)
171         .uleb128 0xe    # (DW_FORM_strp)
172         .uleb128 0x13   # (DW_AT_language)
173         .uleb128 0xb    # (DW_FORM_data1)
174         .uleb128 0x3    # (DW_AT_name)
175         .uleb128 0xe    # (DW_FORM_strp)
176         .uleb128 0x1b   # (DW_AT_comp_dir)
177         .uleb128 0xe    # (DW_FORM_strp)
178         .uleb128 0x55   # (DW_AT_ranges)
179         .uleb128 0x17   # (DW_FORM_sec_offset)
180         .uleb128 0x11   # (DW_AT_low_pc)
181         .uleb128 0x1    # (DW_FORM_addr)
182         .uleb128 0x10   # (DW_AT_stmt_list)
183         .uleb128 0x17   # (DW_FORM_sec_offset)
184         .byte   0
185         .byte   0
186         .uleb128 0x2    # (abbrev code)
187         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
188         .byte   0x1     # DW_children_yes
189         .uleb128 0x3f   # (DW_AT_external)
190         .uleb128 0x19   # (DW_FORM_flag_present)
191         .uleb128 0x3    # (DW_AT_name)
192         .uleb128 0x8    # (DW_FORM_string)
193         .uleb128 0x3a   # (DW_AT_decl_file)
194         .uleb128 0xb    # (DW_FORM_data1)
195         .uleb128 0x3b   # (DW_AT_decl_line)
196         .uleb128 0xb    # (DW_FORM_data1)
197         .uleb128 0x6e   # (DW_AT_linkage_name)
198         .uleb128 0xe    # (DW_FORM_strp)
199         .uleb128 0x11   # (DW_AT_low_pc)
200         .uleb128 0x1    # (DW_FORM_addr)
201         .uleb128 0x12   # (DW_AT_high_pc)
202         .uleb128 0x7    # (DW_FORM_data8)
203         .uleb128 0x40   # (DW_AT_frame_base)
204         .uleb128 0x18   # (DW_FORM_exprloc)
205         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
206         .uleb128 0x19   # (DW_FORM_flag_present)
207         .uleb128 0x1    # (DW_AT_sibling)
208         .uleb128 0x13   # (DW_FORM_ref4)
209         .byte   0
210         .byte   0
211         .uleb128 0x3    # (abbrev code)
212         .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
213         .byte   0       # DW_children_no
214         .uleb128 0x3    # (DW_AT_name)
215         .uleb128 0x8    # (DW_FORM_string)
216         .uleb128 0x3a   # (DW_AT_decl_file)
217         .uleb128 0xb    # (DW_FORM_data1)
218         .uleb128 0x3b   # (DW_AT_decl_line)
219         .uleb128 0xb    # (DW_FORM_data1)
220         .uleb128 0x49   # (DW_AT_type)
221         .uleb128 0x13   # (DW_FORM_ref4)
222         .uleb128 0x2    # (DW_AT_location)
223         .uleb128 0x18   # (DW_FORM_exprloc)
224         .byte   0
225         .byte   0
226         .uleb128 0x4    # (abbrev code)
227         .uleb128 0x24   # (TAG: DW_TAG_base_type)
228         .byte   0       # DW_children_no
229         .uleb128 0xb    # (DW_AT_byte_size)
230         .uleb128 0xb    # (DW_FORM_data1)
231         .uleb128 0x3e   # (DW_AT_encoding)
232         .uleb128 0xb    # (DW_FORM_data1)
233         .uleb128 0x3    # (DW_AT_name)
234         .uleb128 0x8    # (DW_FORM_string)
235         .byte   0
236         .byte   0
237         .uleb128 0x5    # (abbrev code)
238         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
239         .byte   0x1     # DW_children_yes
240         .uleb128 0x3f   # (DW_AT_external)
241         .uleb128 0x19   # (DW_FORM_flag_present)
242         .uleb128 0x3    # (DW_AT_name)
243         .uleb128 0xe    # (DW_FORM_strp)
244         .uleb128 0x3a   # (DW_AT_decl_file)
245         .uleb128 0xb    # (DW_FORM_data1)
246         .uleb128 0x3b   # (DW_AT_decl_line)
247         .uleb128 0xb    # (DW_FORM_data1)
248         .uleb128 0x49   # (DW_AT_type)
249         .uleb128 0x13   # (DW_FORM_ref4)
250         .uleb128 0x11   # (DW_AT_low_pc)
251         .uleb128 0x1    # (DW_FORM_addr)
252         .uleb128 0x12   # (DW_AT_high_pc)
253         .uleb128 0x7    # (DW_FORM_data8)
254         .uleb128 0x40   # (DW_AT_frame_base)
255         .uleb128 0x18   # (DW_FORM_exprloc)
256         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
257         .uleb128 0x19   # (DW_FORM_flag_present)
258         .uleb128 0x1    # (DW_AT_sibling)
259         .uleb128 0x13   # (DW_FORM_ref4)
260         .byte   0
261         .byte   0
262         .uleb128 0x6    # (abbrev code)
263         .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
264         .byte   0x1     # DW_children_yes
265         .uleb128 0x11   # (DW_AT_low_pc)
266         .uleb128 0x1    # (DW_FORM_addr)
267         .uleb128 0x31   # (DW_AT_abstract_origin)
268         .uleb128 0x13   # (DW_FORM_ref4)
269         .byte   0
270         .byte   0
271         .uleb128 0x7    # (abbrev code)
272         .uleb128 0x410a # (TAG: DW_TAG_GNU_call_site_parameter)
273         .byte   0       # DW_children_no
274         .uleb128 0x2    # (DW_AT_location)
275         .uleb128 0x18   # (DW_FORM_exprloc)
276         .uleb128 0x2111 # (DW_AT_GNU_call_site_value)
277         .uleb128 0x18   # (DW_FORM_exprloc)
278         .byte   0
279         .byte   0
280         .uleb128 0x8    # (abbrev code)
281         .uleb128 0x34   # (TAG: DW_TAG_variable)
282         .byte   0       # DW_children_no
283         .uleb128 0x3    # (DW_AT_name)
284         .uleb128 0x8    # (DW_FORM_string)
285         .uleb128 0x3a   # (DW_AT_decl_file)
286         .uleb128 0xb    # (DW_FORM_data1)
287         .uleb128 0x3b   # (DW_AT_decl_line)
288         .uleb128 0xb    # (DW_FORM_data1)
289         .uleb128 0x49   # (DW_AT_type)
290         .uleb128 0x13   # (DW_FORM_ref4)
291         .uleb128 0x3f   # (DW_AT_external)
292         .uleb128 0x19   # (DW_FORM_flag_present)
293         .uleb128 0x2    # (DW_AT_location)
294         .uleb128 0x18   # (DW_FORM_exprloc)
295         .byte   0
296         .byte   0
297         .uleb128 0x9    # (abbrev code)
298         .uleb128 0x35   # (TAG: DW_TAG_volatile_type)
299         .byte   0       # DW_children_no
300         .uleb128 0x49   # (DW_AT_type)
301         .uleb128 0x13   # (DW_FORM_ref4)
302         .byte   0
303         .byte   0
304         .uleb128 0xa    # (abbrev code)
305         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
306         .byte   0x1     # DW_children_yes
307         .uleb128 0x3f   # (DW_AT_external)
308         .uleb128 0x19   # (DW_FORM_flag_present)
309         .uleb128 0x3    # (DW_AT_name)
310         .uleb128 0x8    # (DW_FORM_string)
311         .uleb128 0x3a   # (DW_AT_decl_file)
312         .uleb128 0xb    # (DW_FORM_data1)
313         .uleb128 0x3b   # (DW_AT_decl_line)
314         .uleb128 0xb    # (DW_FORM_data1)
315         .uleb128 0x6e   # (DW_AT_linkage_name)
316         .uleb128 0xe    # (DW_FORM_strp)
317         .uleb128 0x3c   # (DW_AT_declaration)
318         .uleb128 0x19   # (DW_FORM_flag_present)
319         .byte   0
320         .byte   0
321         .uleb128 0xb    # (abbrev code)
322         .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
323         .byte   0       # DW_children_no
324         .uleb128 0x49   # (DW_AT_type)
325         .uleb128 0x13   # (DW_FORM_ref4)
326         .byte   0
327         .byte   0
328         .byte   0
329         .section        .debug_aranges,"",@progbits
330         .long   0x3c    # Length of Address Ranges Info
331         .value  0x2     # DWARF Version
332         .long   .Ldebug_info0   # Offset of Compilation Unit Info
333         .byte   0x8     # Size of Address
334         .byte   0       # Size of Segment Descriptor
335         .value  0       # Pad to 16 byte boundary
336         .value  0
337         .quad   .Ltext0 # Address
338         .quad   .Letext0-.Ltext0        # Length
339         .quad   .LFB1   # Address
340         .quad   .LFE1-.LFB1     # Length
341         .quad   0
342         .quad   0
343         .section        .debug_ranges,"",@progbits
344 .Ldebug_ranges0:
345         .quad   .Ltext0 # Offset 0
346         .quad   .Letext0
347         .quad   .LFB1   # Offset 0x10
348         .quad   .LFE1
349         .quad   0
350         .quad   0
351         .section        .debug_line,"",@progbits
352 .Ldebug_line0:
353         .section        .debug_str,"MS",@progbits,1
354 .LASF4:
355         .string "_Z1gi"
356 .LASF3:
357         .string ""
358 .LASF2:
359         .string "gdb.arch/amd64-tailcall-cxx1.cc"
360 .LASF1:
361         .string "GNU C++ 4.8.0 20130220 (Red Hat 4.8.0-0.14) -mtune=generic -march=x86-64 -g -O2"
362 .LASF0:
363         .string "main"
364 .LASF5:
365         .string "_Z1fi"
366         .ident  "GCC: (GNU) 4.8.0 20130220 (Red Hat 4.8.0-0.14)"
367         .section        .note.GNU-stack,"",@progbits