edf9a3b3447eb04169186b93fd0816caa5829068
[platform/upstream/gdb.git] / gdb / testsuite / gdb.btrace / x86-tailcall.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2013 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 x86-tailcall.c -o x86-tailcall.S  */
23
24         .file   "x86-tailcall.c"
25         .section        .debug_abbrev,"",@progbits
26 .Ldebug_abbrev0:
27         .section        .debug_info,"",@progbits
28 .Ldebug_info0:
29         .section        .debug_line,"",@progbits
30 .Ldebug_line0:
31         .text
32 .Ltext0:
33         .p2align 4,,15
34         .type   bar, @function
35 bar:
36 .LFB0:
37         .file 1 "x86-tailcall.c"
38         # x86-tailcall.c:22
39         .loc 1 22 0
40         .cfi_startproc
41         # basic block 2
42         # x86-tailcall.c:24
43         .loc 1 24 0
44         movl    $42, %eax
45         ret
46         .cfi_endproc
47 .LFE0:
48         .size   bar, .-bar
49         .p2align 4,,15
50         .type   foo, @function
51 foo:
52 .LFB1:
53         # x86-tailcall.c:28
54         .loc 1 28 0
55         .cfi_startproc
56         # basic block 2
57         # x86-tailcall.c:29
58         .loc 1 29 0
59         jmp     bar
60         .cfi_endproc
61 .LFE1:
62         .size   foo, .-foo
63         .p2align 4,,15
64 .globl main
65         .type   main, @function
66 main:
67 .LFB2:
68         # x86-tailcall.c:34
69         .loc 1 34 0
70         .cfi_startproc
71         # basic block 2
72         # x86-tailcall.c:37
73         .loc 1 37 0
74         call    foo
75 .LVL0:
76         addl    $1, %eax
77 .LVL1:
78         # x86-tailcall.c:39
79         .loc 1 39 0
80         ret
81         .cfi_endproc
82 .LFE2:
83         .size   main, .-main
84 .Letext0:
85         .section        .debug_loc,"",@progbits
86 .Ldebug_loc0:
87 .LLST0:
88         .quad   .LVL0-.Ltext0   # Location list begin address (*.LLST0)
89         .quad   .LVL1-.Ltext0   # Location list end address (*.LLST0)
90         .value  0x3     # Location expression size
91         .byte   0x70    # DW_OP_breg0
92         .sleb128 1
93         .byte   0x9f    # DW_OP_stack_value
94         .quad   .LVL1-.Ltext0   # Location list begin address (*.LLST0)
95         .quad   .LFE2-.Ltext0   # Location list end address (*.LLST0)
96         .value  0x1     # Location expression size
97         .byte   0x50    # DW_OP_reg0
98         .quad   0x0     # Location list terminator begin (*.LLST0)
99         .quad   0x0     # Location list terminator end (*.LLST0)
100         .section        .debug_info
101         .long   0x9c    # Length of Compilation Unit Info
102         .value  0x3     # DWARF version number
103         .long   .Ldebug_abbrev0 # Offset Into Abbrev. Section
104         .byte   0x8     # Pointer Size (in bytes)
105         .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
106         .long   .LASF0  # DW_AT_producer: "GNU C 4.4.4 20100726 (Red Hat 4.4.4-13)"
107         .byte   0x1     # DW_AT_language
108         .long   .LASF1  # DW_AT_name: "x86-tailcall.c"
109         .long   .LASF2  # DW_AT_comp_dir: ""
110         .quad   .Ltext0 # DW_AT_low_pc
111         .quad   .Letext0        # DW_AT_high_pc
112         .long   .Ldebug_line0   # DW_AT_stmt_list
113         .uleb128 0x2    # (DIE (0x2d) DW_TAG_subprogram)
114         .ascii "bar\0"  # DW_AT_name
115         .byte   0x1     # DW_AT_decl_file (x86-tailcall.c)
116         .byte   0x15    # DW_AT_decl_line
117         .byte   0x1     # DW_AT_prototyped
118         .long   0x4b    # DW_AT_type
119         .quad   .LFB0   # DW_AT_low_pc
120         .quad   .LFE0   # DW_AT_high_pc
121         .byte   0x1     # DW_AT_frame_base
122         .byte   0x9c    # DW_OP_call_frame_cfa
123         .uleb128 0x3    # (DIE (0x4b) DW_TAG_base_type)
124         .byte   0x4     # DW_AT_byte_size
125         .byte   0x5     # DW_AT_encoding
126         .ascii "int\0"  # DW_AT_name
127         .uleb128 0x2    # (DIE (0x52) DW_TAG_subprogram)
128         .ascii "foo\0"  # DW_AT_name
129         .byte   0x1     # DW_AT_decl_file (x86-tailcall.c)
130         .byte   0x1b    # DW_AT_decl_line
131         .byte   0x1     # DW_AT_prototyped
132         .long   0x4b    # DW_AT_type
133         .quad   .LFB1   # DW_AT_low_pc
134         .quad   .LFE1   # DW_AT_high_pc
135         .byte   0x1     # DW_AT_frame_base
136         .byte   0x9c    # DW_OP_call_frame_cfa
137         .uleb128 0x4    # (DIE (0x70) DW_TAG_subprogram)
138         .byte   0x1     # DW_AT_external
139         .long   .LASF3  # DW_AT_name: "main"
140         .byte   0x1     # DW_AT_decl_file (x86-tailcall.c)
141         .byte   0x21    # DW_AT_decl_line
142         .byte   0x1     # DW_AT_prototyped
143         .long   0x4b    # DW_AT_type
144         .quad   .LFB2   # DW_AT_low_pc
145         .quad   .LFE2   # DW_AT_high_pc
146         .byte   0x1     # DW_AT_frame_base
147         .byte   0x9c    # DW_OP_call_frame_cfa
148         .uleb128 0x5    # (DIE (0x8f) DW_TAG_variable)
149         .long   .LASF4  # DW_AT_name: "answer"
150         .byte   0x1     # DW_AT_decl_file (x86-tailcall.c)
151         .byte   0x23    # DW_AT_decl_line
152         .long   0x4b    # DW_AT_type
153         .long   .LLST0  # DW_AT_location
154         .byte   0x0     # end of children of DIE 0x70
155         .byte   0x0     # end of children of DIE 0xb
156         .section        .debug_abbrev
157         .uleb128 0x1    # (abbrev code)
158         .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
159         .byte   0x1     # DW_children_yes
160         .uleb128 0x25   # (DW_AT_producer)
161         .uleb128 0xe    # (DW_FORM_strp)
162         .uleb128 0x13   # (DW_AT_language)
163         .uleb128 0xb    # (DW_FORM_data1)
164         .uleb128 0x3    # (DW_AT_name)
165         .uleb128 0xe    # (DW_FORM_strp)
166         .uleb128 0x1b   # (DW_AT_comp_dir)
167         .uleb128 0xe    # (DW_FORM_strp)
168         .uleb128 0x11   # (DW_AT_low_pc)
169         .uleb128 0x1    # (DW_FORM_addr)
170         .uleb128 0x12   # (DW_AT_high_pc)
171         .uleb128 0x1    # (DW_FORM_addr)
172         .uleb128 0x10   # (DW_AT_stmt_list)
173         .uleb128 0x6    # (DW_FORM_data4)
174         .byte   0x0
175         .byte   0x0
176         .uleb128 0x2    # (abbrev code)
177         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
178         .byte   0x0     # DW_children_no
179         .uleb128 0x3    # (DW_AT_name)
180         .uleb128 0x8    # (DW_FORM_string)
181         .uleb128 0x3a   # (DW_AT_decl_file)
182         .uleb128 0xb    # (DW_FORM_data1)
183         .uleb128 0x3b   # (DW_AT_decl_line)
184         .uleb128 0xb    # (DW_FORM_data1)
185         .uleb128 0x27   # (DW_AT_prototyped)
186         .uleb128 0xc    # (DW_FORM_flag)
187         .uleb128 0x49   # (DW_AT_type)
188         .uleb128 0x13   # (DW_FORM_ref4)
189         .uleb128 0x11   # (DW_AT_low_pc)
190         .uleb128 0x1    # (DW_FORM_addr)
191         .uleb128 0x12   # (DW_AT_high_pc)
192         .uleb128 0x1    # (DW_FORM_addr)
193         .uleb128 0x40   # (DW_AT_frame_base)
194         .uleb128 0xa    # (DW_FORM_block1)
195         .byte   0x0
196         .byte   0x0
197         .uleb128 0x3    # (abbrev code)
198         .uleb128 0x24   # (TAG: DW_TAG_base_type)
199         .byte   0x0     # DW_children_no
200         .uleb128 0xb    # (DW_AT_byte_size)
201         .uleb128 0xb    # (DW_FORM_data1)
202         .uleb128 0x3e   # (DW_AT_encoding)
203         .uleb128 0xb    # (DW_FORM_data1)
204         .uleb128 0x3    # (DW_AT_name)
205         .uleb128 0x8    # (DW_FORM_string)
206         .byte   0x0
207         .byte   0x0
208         .uleb128 0x4    # (abbrev code)
209         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
210         .byte   0x1     # DW_children_yes
211         .uleb128 0x3f   # (DW_AT_external)
212         .uleb128 0xc    # (DW_FORM_flag)
213         .uleb128 0x3    # (DW_AT_name)
214         .uleb128 0xe    # (DW_FORM_strp)
215         .uleb128 0x3a   # (DW_AT_decl_file)
216         .uleb128 0xb    # (DW_FORM_data1)
217         .uleb128 0x3b   # (DW_AT_decl_line)
218         .uleb128 0xb    # (DW_FORM_data1)
219         .uleb128 0x27   # (DW_AT_prototyped)
220         .uleb128 0xc    # (DW_FORM_flag)
221         .uleb128 0x49   # (DW_AT_type)
222         .uleb128 0x13   # (DW_FORM_ref4)
223         .uleb128 0x11   # (DW_AT_low_pc)
224         .uleb128 0x1    # (DW_FORM_addr)
225         .uleb128 0x12   # (DW_AT_high_pc)
226         .uleb128 0x1    # (DW_FORM_addr)
227         .uleb128 0x40   # (DW_AT_frame_base)
228         .uleb128 0xa    # (DW_FORM_block1)
229         .byte   0x0
230         .byte   0x0
231         .uleb128 0x5    # (abbrev code)
232         .uleb128 0x34   # (TAG: DW_TAG_variable)
233         .byte   0x0     # DW_children_no
234         .uleb128 0x3    # (DW_AT_name)
235         .uleb128 0xe    # (DW_FORM_strp)
236         .uleb128 0x3a   # (DW_AT_decl_file)
237         .uleb128 0xb    # (DW_FORM_data1)
238         .uleb128 0x3b   # (DW_AT_decl_line)
239         .uleb128 0xb    # (DW_FORM_data1)
240         .uleb128 0x49   # (DW_AT_type)
241         .uleb128 0x13   # (DW_FORM_ref4)
242         .uleb128 0x2    # (DW_AT_location)
243         .uleb128 0x6    # (DW_FORM_data4)
244         .byte   0x0
245         .byte   0x0
246         .byte   0x0
247         .section        .debug_pubnames,"",@progbits
248         .long   0x17    # Length of Public Names Info
249         .value  0x2     # DWARF Version
250         .long   .Ldebug_info0   # Offset of Compilation Unit Info
251         .long   0xa0    # Compilation Unit Length
252         .long   0x70    # DIE offset
253         .ascii "main\0" # external name
254         .long   0x0
255         .section        .debug_aranges,"",@progbits
256         .long   0x2c    # Length of Address Ranges Info
257         .value  0x2     # DWARF Version
258         .long   .Ldebug_info0   # Offset of Compilation Unit Info
259         .byte   0x8     # Size of Address
260         .byte   0x0     # Size of Segment Descriptor
261         .value  0x0     # Pad to 16 byte boundary
262         .value  0x0
263         .quad   .Ltext0 # Address
264         .quad   .Letext0-.Ltext0        # Length
265         .quad   0x0
266         .quad   0x0
267         .section        .debug_str,"MS",@progbits,1
268 .LASF0:
269         .string "GNU C 4.4.4 20100726 (Red Hat 4.4.4-13)"
270 .LASF3:
271         .string "main"
272 .LASF4:
273         .string "answer"
274 .LASF2:
275         .string ""
276 .LASF1:
277         .string "x86-tailcall.c"
278         .ident  "GCC: (GNU) 4.4.4 20100726 (Red Hat 4.4.4-13)"
279         .section        .note.GNU-stack,"",@progbits