Upload Tizen:Base source
[external/binutils.git] / binutils / testsuite / binutils-all / dw2-compressed.S
1 /* This testcase is derived from a similar test in GDB.
2
3    Copyright 2008, 2009 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 tests that gdb can read compressed sections.  The contents
19    are a basic assembly file, but the .debug_abbrev section has been
20    comrpessed using zlib.  */
21
22 /* Dummy function to provide debug information for.  */
23
24         .text
25         .globl _start
26 _start:
27         .int 0
28 .Lbegin_text1:
29         .globl func_cu1
30         .type func_cu1, %function
31 func_cu1:
32 .Lbegin_func_cu1:
33         .int 0
34 .Lend_func_cu1:
35         .size func_cu1, .-func_cu1
36 .Lend_text1:
37
38 /* Debug information */
39
40         .section .debug_info
41 .Lcu1_begin:
42         /* CU header */
43         .4byte  .Lcu1_end - .Lcu1_start         /* Length of Compilation Unit */
44 .Lcu1_start:
45         .2byte  2                               /* DWARF Version */
46         .4byte  .Labbrev1_begin                 /* Offset into abbrev section */
47         .byte   4                               /* Pointer size */
48
49         /* CU die */
50         .uleb128 1                              /* Abbrev: DW_TAG_compile_unit */
51         .4byte  .Lline1_begin                   /* DW_AT_stmt_list */
52         .4byte  .Lend_text1                     /* DW_AT_high_pc */
53         .4byte  .Lbegin_text1                   /* DW_AT_low_pc */
54         .ascii  "file1.txt\0"                   /* DW_AT_name */
55         .ascii  "GNU C 3.3.3\0"                 /* DW_AT_producer */
56         .byte   1                               /* DW_AT_language (C) */
57
58         /* func_cu1 */
59         .uleb128        2                       /* Abbrev: DW_TAG_subprogram */
60         .byte           1                       /* DW_AT_external */
61         .byte           1                       /* DW_AT_decl_file */
62         .byte           2                       /* DW_AT_decl_line */
63         .ascii          "func_cu1\0"            /* DW_AT_name */
64         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
65         .4byte          .Lbegin_func_cu1        /* DW_AT_low_pc */
66         .4byte          .Lend_func_cu1          /* DW_AT_high_pc */
67         .byte           1                       /* DW_AT_frame_base: length */
68         .byte           0x55                    /* DW_AT_frame_base: DW_OP_reg5 */
69
70 .Ltype_int:
71         .uleb128        3                       /* Abbrev: DW_TAG_base_type */
72         .ascii          "int\0"                 /* DW_AT_name */
73         .byte           4                       /* DW_AT_byte_size */
74         .byte           5                       /* DW_AT_encoding */
75
76         .byte           0                       /* End of children of CU */
77
78 .Lcu1_end:
79
80 /* Line table */
81         .section .debug_line
82 .Lline1_begin:
83         .4byte          .Lline1_end - .Lline1_start     /* Initial length */
84 .Lline1_start:
85         .2byte          2                       /* Version */
86         .4byte          .Lline1_lines - .Lline1_hdr     /* header_length */
87 .Lline1_hdr:
88         .byte           1                       /* Minimum insn length */
89         .byte           1                       /* default_is_stmt */
90         .byte           1                       /* line_base */
91         .byte           1                       /* line_range */
92         .byte           0x10                    /* opcode_base */
93
94         /* Standard lengths */
95         .byte           0
96         .byte           1
97         .byte           1
98         .byte           1
99         .byte           1
100         .byte           0
101         .byte           0
102         .byte           0
103         .byte           1
104         .byte           0
105         .byte           0
106         .byte           1
107         .byte           0
108         .byte           0
109         .byte           0
110
111         /* Include directories */
112         .byte           0
113
114         /* File names */
115         .ascii          "file1.txt\0"
116         .uleb128        0
117         .uleb128        0
118         .uleb128        0
119
120         .byte           0
121
122 .Lline1_lines:
123         .byte           0       /* DW_LNE_set_address */
124         .uleb128        5
125         .byte           2
126         .4byte          .Lbegin_func_cu1
127
128         .byte           3       /* DW_LNS_advance_line */
129         .sleb128        3       /* ... to 4 */
130
131         .byte           1       /* DW_LNS_copy */
132
133         .byte           1       /* DW_LNS_copy (second time as an end-of-prologue marker) */
134
135         .byte           0       /* DW_LNE_set_address */
136         .uleb128        5
137         .byte           2
138         .4byte          .Lend_func_cu1
139
140         .byte           0       /* DW_LNE_end_of_sequence */
141         .uleb128        1
142         .byte           1
143
144 .Lline1_end:
145
146 /* Abbrev table -- compressed */
147         .section .zdebug_abbrev
148 .Labbrev1_begin:
149         .ascii          "ZLIB"
150         .4byte          0
151         .2byte          0
152         .byte           0
153         .byte           51
154         .byte           0x78
155         .byte           0x5e
156         .byte           0x63
157         .byte           0x14
158         .byte           0x64
159         .byte           0x14
160         .byte           0x60
161         .byte           0x13
162         .byte           0x62
163         .byte           0x14
164         .byte           0x64
165         .byte           0x64
166         .byte           0xe6
167         .byte           0x50
168         .byte           0xe5
169         .byte           0x10
170         .byte           0xe6
171         .byte           0x66
172         .byte           0x60
173         .byte           0x60
174         .byte           0xd2
175         .byte           0x63
176         .byte           0xb0
177         .byte           0xe7
178         .byte           0xb1
179         .byte           0xe2
180         .byte           0xb6
181         .byte           0xe6
182         .byte           0x66
183         .byte           0xe6
184         .byte           0xf0
185         .byte           0x14
186         .byte           0x16
187         .byte           0x64
188         .byte           0x14
189         .byte           0x62
190         .byte           0x74
191         .byte           0xe0
192         .byte           0x02
193         .byte           0x00
194         .byte           0x25
195         .byte           0x78
196         .byte           0x02
197         .byte           0x81
198         .byte           0x78
199         .byte           0x9c
200         .byte           0x63
201         .byte           0x60
202         .byte           0x60
203         .byte           0x56
204         .byte           0x61
205         .byte           0x60
206         .byte           0xe6
207         .byte           0xe0
208         .byte           0xe6
209         .byte           0xb6
210         .byte           0xe3
211         .byte           0x66
212         .byte           0x00
213         .byte           0x02
214         .byte           0x00
215         .byte           0x04
216         .byte           0x9c
217         .byte           0x00
218         .byte           0x92