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