gdb/testsuite: fix gdb.trace/signal.exp on x86
[binutils-gdb/blckswan.git] / gdb / testsuite / gdb.reverse / amd64-tailcall-reverse.S
blob64b48f5afff6a180888548ef2a74362774f3e918
1 /* This testcase is part of GDB, the GNU debugger.
3    Copyright 2012-2022 Free Software Foundation, Inc.
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.
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.
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/>.  */
18 /* This source file was generated by:
19    gcc -o gdb.reverse/amd64-tailcall-reverse.S gdb.reverse/amd64-tailcall-reverse.c -Wall -S -dA -O2 -g
20    */
22         .file   "amd64-tailcall-reverse.c"
23         .text
24 .Ltext0:
25         .p2align 4,,15
26         .type   g, @function
28 .LFB0:
29         .file 1 "gdb.reverse/amd64-tailcall-reverse.c"
30         # gdb.reverse/amd64-tailcall-reverse.c:22
31         .loc 1 22 0
32         .cfi_startproc
33 # BLOCK 2 freq:10000 seq:0
34 # PRED: ENTRY [100.0%]  (fallthru)
35         # gdb.reverse/amd64-tailcall-reverse.c:23
36         .loc 1 23 0
37         movl    $2, v(%rip)
38 # SUCC: EXIT [100.0%] 
39         ret
40         .cfi_endproc
41 .LFE0:
42         .size   g, .-g
43         .p2align 4,,15
44         .type   f, @function
46 .LFB1:
47         # gdb.reverse/amd64-tailcall-reverse.c:28
48         .loc 1 28 0
49         .cfi_startproc
50 # BLOCK 2 freq:10000 seq:0
51 # PRED: ENTRY [100.0%]  (fallthru)
52         # gdb.reverse/amd64-tailcall-reverse.c:29
53         .loc 1 29 0
54         jmp     g
55 # SUCC: EXIT [100.0%]  (ab,sibcall)
56 .LVL0:
57         .cfi_endproc
58 .LFE1:
59         .size   f, .-f
60         .section        .text.startup,"ax",@progbits
61         .p2align 4,,15
62         .globl  main
63         .type   main, @function
64 main:
65 .LFB2:
66         # gdb.reverse/amd64-tailcall-reverse.c:34
67         .loc 1 34 0
68         .cfi_startproc
69 # BLOCK 2 freq:10000 seq:0
70 # PRED: ENTRY [100.0%]  (fallthru)
71         # gdb.reverse/amd64-tailcall-reverse.c:35
72         .loc 1 35 0
73         movl    $1, v(%rip)
74         # gdb.reverse/amd64-tailcall-reverse.c:36
75         .loc 1 36 0
76         call    f
77 .LVL1:
78         # gdb.reverse/amd64-tailcall-reverse.c:37
79         .loc 1 37 0
80         movl    $3, v(%rip)
81         # gdb.reverse/amd64-tailcall-reverse.c:39
82         .loc 1 39 0
83         xorl    %eax, %eax
84 # SUCC: EXIT [100.0%] 
85         ret
86         .cfi_endproc
87 .LFE2:
88         .size   main, .-main
89         .comm   v,4,4
90         .text
91 .Letext0:
92         .section        .debug_info,"",@progbits
93 .Ldebug_info0:
94         .long   0xc8    # Length of Compilation Unit Info
95         .value  0x2     # DWARF version number
96         .long   .Ldebug_abbrev0 # Offset Into Abbrev. Section
97         .byte   0x8     # Pointer Size (in bytes)
98         .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
99         .long   .LASF0  # DW_AT_producer: "GNU C 4.7.2 20120911 (prerelease)"
100         .byte   0x1     # DW_AT_language
101         .long   .LASF1  # DW_AT_name: "gdb.reverse/amd64-tailcall-reverse.c"
102         .long   .LASF2  # DW_AT_comp_dir: ""
103         .long   .Ldebug_ranges0+0       # DW_AT_ranges
104         .quad   0       # DW_AT_low_pc
105         .quad   0       # DW_AT_entry_pc
106         .long   .Ldebug_line0   # DW_AT_stmt_list
107         .uleb128 0x2    # (DIE (0x31) DW_TAG_subprogram)
108         .ascii "g\0"    # DW_AT_name
109         .byte   0x1     # DW_AT_decl_file (gdb.reverse/amd64-tailcall-reverse.c)
110         .byte   0x15    # DW_AT_decl_line
111         .byte   0x1     # DW_AT_prototyped
112         .quad   .LFB0   # DW_AT_low_pc
113         .quad   .LFE0   # DW_AT_high_pc
114         .byte   0x2     # DW_AT_frame_base
115         .byte   0x77    # DW_OP_breg7
116         .sleb128 8
117         .byte   0x1     # DW_AT_GNU_all_call_sites
118         .uleb128 0x3    # (DIE (0x4b) DW_TAG_subprogram)
119         .ascii "f\0"    # DW_AT_name
120         .byte   0x1     # DW_AT_decl_file (gdb.reverse/amd64-tailcall-reverse.c)
121         .byte   0x1b    # DW_AT_decl_line
122         .byte   0x1     # DW_AT_prototyped
123         .quad   .LFB1   # DW_AT_low_pc
124         .quad   .LFE1   # DW_AT_high_pc
125         .byte   0x2     # DW_AT_frame_base
126         .byte   0x77    # DW_OP_breg7
127         .sleb128 8
128         .byte   0x1     # DW_AT_GNU_all_call_sites
129         .long   0x78    # DW_AT_sibling
130         .uleb128 0x4    # (DIE (0x69) DW_TAG_GNU_call_site)
131         .quad   .LVL0   # DW_AT_low_pc
132         .byte   0x1     # DW_AT_GNU_tail_call
133         .long   0x31    # DW_AT_abstract_origin
134         .byte   0       # end of children of DIE 0x4b
135         .uleb128 0x5    # (DIE (0x78) DW_TAG_subprogram)
136         .byte   0x1     # DW_AT_external
137         .long   .LASF3  # DW_AT_name: "main"
138         .byte   0x1     # DW_AT_decl_file (gdb.reverse/amd64-tailcall-reverse.c)
139         .byte   0x21    # DW_AT_decl_line
140         .byte   0x1     # DW_AT_prototyped
141         .long   0xab    # DW_AT_type
142         .quad   .LFB2   # DW_AT_low_pc
143         .quad   .LFE2   # DW_AT_high_pc
144         .byte   0x2     # DW_AT_frame_base
145         .byte   0x77    # DW_OP_breg7
146         .sleb128 8
147         .byte   0x1     # DW_AT_GNU_all_call_sites
148         .long   0xab    # DW_AT_sibling
149         .uleb128 0x6    # (DIE (0x9d) DW_TAG_GNU_call_site)
150         .quad   .LVL1   # DW_AT_low_pc
151         .long   0x4b    # DW_AT_abstract_origin
152         .byte   0       # end of children of DIE 0x78
153         .uleb128 0x7    # (DIE (0xab) DW_TAG_base_type)
154         .byte   0x4     # DW_AT_byte_size
155         .byte   0x5     # DW_AT_encoding
156         .ascii "int\0"  # DW_AT_name
157         .uleb128 0x8    # (DIE (0xb2) DW_TAG_variable)
158         .ascii "v\0"    # DW_AT_name
159         .byte   0x1     # DW_AT_decl_file (gdb.reverse/amd64-tailcall-reverse.c)
160         .byte   0x12    # DW_AT_decl_line
161         .long   0xc6    # DW_AT_type
162         .byte   0x1     # DW_AT_external
163         .byte   0x9     # DW_AT_location
164         .byte   0x3     # DW_OP_addr
165         .quad   v
166         .uleb128 0x9    # (DIE (0xc6) DW_TAG_volatile_type)
167         .long   0xab    # DW_AT_type
168         .byte   0       # end of children of DIE 0xb
169         .section        .debug_abbrev,"",@progbits
170 .Ldebug_abbrev0:
171         .uleb128 0x1    # (abbrev code)
172         .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
173         .byte   0x1     # DW_children_yes
174         .uleb128 0x25   # (DW_AT_producer)
175         .uleb128 0xe    # (DW_FORM_strp)
176         .uleb128 0x13   # (DW_AT_language)
177         .uleb128 0xb    # (DW_FORM_data1)
178         .uleb128 0x3    # (DW_AT_name)
179         .uleb128 0xe    # (DW_FORM_strp)
180         .uleb128 0x1b   # (DW_AT_comp_dir)
181         .uleb128 0xe    # (DW_FORM_strp)
182         .uleb128 0x55   # (DW_AT_ranges)
183         .uleb128 0x6    # (DW_FORM_data4)
184         .uleb128 0x11   # (DW_AT_low_pc)
185         .uleb128 0x1    # (DW_FORM_addr)
186         .uleb128 0x52   # (DW_AT_entry_pc)
187         .uleb128 0x1    # (DW_FORM_addr)
188         .uleb128 0x10   # (DW_AT_stmt_list)
189         .uleb128 0x6    # (DW_FORM_data4)
190         .byte   0
191         .byte   0
192         .uleb128 0x2    # (abbrev code)
193         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
194         .byte   0       # DW_children_no
195         .uleb128 0x3    # (DW_AT_name)
196         .uleb128 0x8    # (DW_FORM_string)
197         .uleb128 0x3a   # (DW_AT_decl_file)
198         .uleb128 0xb    # (DW_FORM_data1)
199         .uleb128 0x3b   # (DW_AT_decl_line)
200         .uleb128 0xb    # (DW_FORM_data1)
201         .uleb128 0x27   # (DW_AT_prototyped)
202         .uleb128 0xc    # (DW_FORM_flag)
203         .uleb128 0x11   # (DW_AT_low_pc)
204         .uleb128 0x1    # (DW_FORM_addr)
205         .uleb128 0x12   # (DW_AT_high_pc)
206         .uleb128 0x1    # (DW_FORM_addr)
207         .uleb128 0x40   # (DW_AT_frame_base)
208         .uleb128 0xa    # (DW_FORM_block1)
209         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
210         .uleb128 0xc    # (DW_FORM_flag)
211         .byte   0
212         .byte   0
213         .uleb128 0x3    # (abbrev code)
214         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
215         .byte   0x1     # DW_children_yes
216         .uleb128 0x3    # (DW_AT_name)
217         .uleb128 0x8    # (DW_FORM_string)
218         .uleb128 0x3a   # (DW_AT_decl_file)
219         .uleb128 0xb    # (DW_FORM_data1)
220         .uleb128 0x3b   # (DW_AT_decl_line)
221         .uleb128 0xb    # (DW_FORM_data1)
222         .uleb128 0x27   # (DW_AT_prototyped)
223         .uleb128 0xc    # (DW_FORM_flag)
224         .uleb128 0x11   # (DW_AT_low_pc)
225         .uleb128 0x1    # (DW_FORM_addr)
226         .uleb128 0x12   # (DW_AT_high_pc)
227         .uleb128 0x1    # (DW_FORM_addr)
228         .uleb128 0x40   # (DW_AT_frame_base)
229         .uleb128 0xa    # (DW_FORM_block1)
230         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
231         .uleb128 0xc    # (DW_FORM_flag)
232         .uleb128 0x1    # (DW_AT_sibling)
233         .uleb128 0x13   # (DW_FORM_ref4)
234         .byte   0
235         .byte   0
236         .uleb128 0x4    # (abbrev code)
237         .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
238         .byte   0       # DW_children_no
239         .uleb128 0x11   # (DW_AT_low_pc)
240         .uleb128 0x1    # (DW_FORM_addr)
241         .uleb128 0x2115 # (DW_AT_GNU_tail_call)
242         .uleb128 0xc    # (DW_FORM_flag)
243         .uleb128 0x31   # (DW_AT_abstract_origin)
244         .uleb128 0x13   # (DW_FORM_ref4)
245         .byte   0
246         .byte   0
247         .uleb128 0x5    # (abbrev code)
248         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
249         .byte   0x1     # DW_children_yes
250         .uleb128 0x3f   # (DW_AT_external)
251         .uleb128 0xc    # (DW_FORM_flag)
252         .uleb128 0x3    # (DW_AT_name)
253         .uleb128 0xe    # (DW_FORM_strp)
254         .uleb128 0x3a   # (DW_AT_decl_file)
255         .uleb128 0xb    # (DW_FORM_data1)
256         .uleb128 0x3b   # (DW_AT_decl_line)
257         .uleb128 0xb    # (DW_FORM_data1)
258         .uleb128 0x27   # (DW_AT_prototyped)
259         .uleb128 0xc    # (DW_FORM_flag)
260         .uleb128 0x49   # (DW_AT_type)
261         .uleb128 0x13   # (DW_FORM_ref4)
262         .uleb128 0x11   # (DW_AT_low_pc)
263         .uleb128 0x1    # (DW_FORM_addr)
264         .uleb128 0x12   # (DW_AT_high_pc)
265         .uleb128 0x1    # (DW_FORM_addr)
266         .uleb128 0x40   # (DW_AT_frame_base)
267         .uleb128 0xa    # (DW_FORM_block1)
268         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
269         .uleb128 0xc    # (DW_FORM_flag)
270         .uleb128 0x1    # (DW_AT_sibling)
271         .uleb128 0x13   # (DW_FORM_ref4)
272         .byte   0
273         .byte   0
274         .uleb128 0x6    # (abbrev code)
275         .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
276         .byte   0       # DW_children_no
277         .uleb128 0x11   # (DW_AT_low_pc)
278         .uleb128 0x1    # (DW_FORM_addr)
279         .uleb128 0x31   # (DW_AT_abstract_origin)
280         .uleb128 0x13   # (DW_FORM_ref4)
281         .byte   0
282         .byte   0
283         .uleb128 0x7    # (abbrev code)
284         .uleb128 0x24   # (TAG: DW_TAG_base_type)
285         .byte   0       # DW_children_no
286         .uleb128 0xb    # (DW_AT_byte_size)
287         .uleb128 0xb    # (DW_FORM_data1)
288         .uleb128 0x3e   # (DW_AT_encoding)
289         .uleb128 0xb    # (DW_FORM_data1)
290         .uleb128 0x3    # (DW_AT_name)
291         .uleb128 0x8    # (DW_FORM_string)
292         .byte   0
293         .byte   0
294         .uleb128 0x8    # (abbrev code)
295         .uleb128 0x34   # (TAG: DW_TAG_variable)
296         .byte   0       # DW_children_no
297         .uleb128 0x3    # (DW_AT_name)
298         .uleb128 0x8    # (DW_FORM_string)
299         .uleb128 0x3a   # (DW_AT_decl_file)
300         .uleb128 0xb    # (DW_FORM_data1)
301         .uleb128 0x3b   # (DW_AT_decl_line)
302         .uleb128 0xb    # (DW_FORM_data1)
303         .uleb128 0x49   # (DW_AT_type)
304         .uleb128 0x13   # (DW_FORM_ref4)
305         .uleb128 0x3f   # (DW_AT_external)
306         .uleb128 0xc    # (DW_FORM_flag)
307         .uleb128 0x2    # (DW_AT_location)
308         .uleb128 0xa    # (DW_FORM_block1)
309         .byte   0
310         .byte   0
311         .uleb128 0x9    # (abbrev code)
312         .uleb128 0x35   # (TAG: DW_TAG_volatile_type)
313         .byte   0       # DW_children_no
314         .uleb128 0x49   # (DW_AT_type)
315         .uleb128 0x13   # (DW_FORM_ref4)
316         .byte   0
317         .byte   0
318         .byte   0
319         .section        .debug_aranges,"",@progbits
320         .long   0x3c    # Length of Address Ranges Info
321         .value  0x2     # DWARF Version
322         .long   .Ldebug_info0   # Offset of Compilation Unit Info
323         .byte   0x8     # Size of Address
324         .byte   0       # Size of Segment Descriptor
325         .value  0       # Pad to 16 byte boundary
326         .value  0
327         .quad   .Ltext0 # Address
328         .quad   .Letext0-.Ltext0        # Length
329         .quad   .LFB2   # Address
330         .quad   .LFE2-.LFB2     # Length
331         .quad   0
332         .quad   0
333         .section        .debug_ranges,"",@progbits
334 .Ldebug_ranges0:
335         .quad   .Ltext0 # Offset 0
336         .quad   .Letext0
337         .quad   .LFB2   # Offset 0x10
338         .quad   .LFE2
339         .quad   0
340         .quad   0
341         .section        .debug_line,"",@progbits
342 .Ldebug_line0:
343         .section        .debug_str,"MS",@progbits,1
344 .LASF3:
345         .string "main"
346 .LASF0:
347         .string "GNU C 4.7.2 20120911 (prerelease)"
348 .LASF1:
349         .string "gdb.reverse/amd64-tailcall-reverse.c"
350 .LASF2:
351         .string ""
352         .ident  "GCC: (GNU) 4.7.2 20120911 (prerelease)"
353         .section        .note.GNU-stack,"",@progbits